Показать сообщение отдельно
Старый 19.02.2013, 21:42   #5
Mr_F_
Терабайт исходников
 
Аватар для Mr_F_
 
Регистрация: 13.09.2008
Сообщений: 3,947
Написано 2,189 полезных сообщений
(для 6,051 пользователей)
Ответ: Освещение - множество источников + бамп

Деферед = с помощью MRT рендерим за 1 вызов отрисовки объекты сразу в множество текстур - всего как минимум нам нужен цвет, нормали и позиция (можно хранить глубину и из неё восстановить позицию в шейдере). Далее постпроцессом всё это совмещается, т.е. освещение считается на полноэкранном кваде на основе инфы из отрендереных текстур и массива источников света.

Форвард = рендерим объекты с шейдерами, в которых сразу всё считаем.

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

Если тебе нужно 10 источников света не на каждом объекте, а в сцене вообще - то форвард справится, просто суй только необходимые источники в шейдеры объектам.

Насчёт ксорса - хз - выпилили деферед, но может не выпилили МРТ? Если МРТ на месте, то всё реализуемо, если не на месте, то забей.
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
Владислав (20.02.2013)