Отложенный рендеринг - рендеринг моделей с индивидуальными эффектами - PullRequest
3 голосов
/ 07 июля 2011

Я прочитал несколько учебных пособий ( Catalin Zima , TheCansin ) относительно отложенного рендеринга в XNA. Кажется, что все они используют конвейер отложенного рендеринга для рендеринга моделей. Это здорово, но они имеют дело только с картами нормалей и зеркальных изображений.

Если у меня правильное мышление, если я хочу визуализировать модель, которая имеет, например, эффект свечения, и у меня есть шейдер свечения, то конвейер отложенного рендеринга не будет знать об этом шейдере? *

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

1 Ответ

3 голосов
/ 07 июля 2011

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

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

...