Страница 1 из 1

Как работает шахматный рендеринг: упрощенная версия

: 04 янв 2017, 18:53
electrifying
Сегодня на форуме NeoGAF появилось упрощенное, но очень наглядное объяснение того, как работает "шахматный" рендеринг и чем он отличается от обычного рендеринга и апскейла. Хотите знать больше? Добро пожаловать на борт.

Итак, представим, что у нас есть простая сцена взрыва: внизу земля, вверху летит подброшенный взрывом осколок. На уровне полигонов такая сцена выглядеть примерно вот так:


первый кадр
Изображение
второй кадр
Изображение

Игровому движку нужно превратить трехмерную сцену в двумерную, растеризовать ее: все-таки у одного пикселя на вашем экране может быть только один цвет. На этом этапе движок определяет, на какое количество пикселей он может разбить находящуюся в кадре сцену.

Результат может быть примерно таким; разрешение нашего виртуального дисплея оказалось очень маленьким, всего 10х10 пикселей:

Изображение

Сильно упрощенный процесс обычного рендеринга выглядит так: модели текстурируются, картинка обрабатывается с помощью шейдеров (в нашем случае у летящего осколка появился характерный блеск), добавляются эффекты освещения (и отсвет взрыва), мелкие частицы, и, наконец, поверх всего этого рисуется пользовательский интерфейс.

Изображение

В случае с "шахматным" рендерингом все немного веселее. На начальных этапах технология работает почти так же, как и обычный рендеринг, за одним важным исключением - во время текстурирования, наложения шейдеров и освещения обрабатывается только каждый второй пиксель сцены.

Затем из специального буфера (у PlayStation 4 Pro он называется ID Buffer) извлекаются данные о положении всех объектов в сцене на предыдущем кадре: они сравниваются с текущим положением дел, чтобы определить, какие объекты изменили свое положение, и как именно они это сделали.

После этого изменившие положение пиксели из предыдущего кадра перемещаются на новые позиции, и два кадра - новый и измененный предыдущий - склеиваются в один кадр.

Теперь этот кадр нужно откорректировать: если сцена активно изменялась, то некоторые пиксели, взятые из старого кадра, могут оказаться не на своих местах. Во время коррекции такие пиксели сравниваются с соседними пикселями нового кадра и в случае нужды усредняются - в чем-то это похоже на апскейл.

Кадр практически готов: осталось нарисовать частицы (некоторые движки делать это до восстановления полного кадра), наложить интерфейс - и можно показывать игроку.

Изображение

Обычный апскейл работает намного проще: все фазы до наложения интерфейса полностью аналогичны обычному рендерингу. Перед отрисовкой интерфейса к финальному кадру применяется один из алгоритмов ресэмплинга, а затем изображение показывается игроку.

Изображение

С точки зрения качества финального изображения лидирует, разумеется, стандартный рендеринг. Затем идет "шахматный" рендеринг: при отсутствии ошибок, связанных с активным изменением сцены, финальный результат будет аналогичен обычному рендерингу.

Ну а картинка, сгенерированная с помощью апскейла, покажет наихудшее качество изображения.
Изображение

Re: Как работает шахматный рендеринг: упрощенная версия

: 04 янв 2017, 18:55
Kanikama
где

Re: Как работает шахматный рендеринг: упрощенная версия

: 04 янв 2017, 18:57
kvidix
Примерно такая же параша в квантум брике, "реконструкция" из нескольких кадров. Потому он и выглядит как мыльное говно. :lol5:

Re: Как работает шахматный рендеринг: упрощенная версия

: 04 янв 2017, 18:58
electrifying
kvidix писал(а):Примерно такая же параша в квантум брике, "реконструкция" из нескольких кадров. Потому он и выглядит как мыльное говно. :lol5:
Отключи ее и получишь 10 фпс на 17 титанах. :kojima:

Re: Как работает шахматный рендеринг: упрощенная версия

: 04 янв 2017, 19:04
kvidix
electrifying писал(а): Отключи ее и получишь 10 фпс на 17 титанах
на какую кнопку банить? :kojima:

Re: Как работает шахматный рендеринг: упрощенная версия

: 04 янв 2017, 19:16
Xopek
Это изображение какахи падающий в рот сонибою

Re: Как работает шахматный рендеринг: упрощенная версия

: 04 янв 2017, 19:40
ibn_kazimir
kvidix писал(а):
electrifying писал(а): Отключи ее и получишь 10 фпс на 17 титанах
на какую кнопку банить? :kojima:
Она на твоем скриншоте QB с 28 fps :kojima: