Укажите несколько целей рендеринга - PullRequest
2 голосов
/ 30 мая 2011

Есть ли смысл использовать несколько целей рендеринга?Разве нельзя нарисовать одну цель рендеринга и сохранить ее в текстуре, прежде чем очистить цель и использовать ее снова?

Ответы [ 2 ]

4 голосов
/ 01 июня 2011

Главное, что нужно понять о MRT, это то, что вы не выводите одинаковые данные во все цели рендеринга.

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

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

enter image description here

Это действительно тот случай, когда значения RGBA становятся другими вещами, например, RGB, потому что X, Y, Zнормаль нарисованного многоугольника.

Существуют некоторые уловки с использованием MRT, например, все ваши цели рендеринга должны иметь одинаковую битовую глубину, и вы начинаете толкать текстуру GPU с ее заполнением, но в целом преимуществавне ловушек.

1 голос
/ 31 мая 2011

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

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

См. 6800 Лиги под морем (Hargreaves & Harris 2004) для праймера Deferred Shading и G-Buffers.

...