Показать сообщение отдельно
Старый 14.12.2014, 14:20   #685
mr.DIMAS
Дэвелопер
 
Аватар для mr.DIMAS
 
Регистрация: 26.12.2006
Адрес: Санкт-Петербург
Сообщений: 1,572
Написано 547 полезных сообщений
(для 1,540 пользователей)
Ответ: [TrueHorror] - разработка

Я просто оптимизациями занимаюсь, и пока довольно успешно( ибо уже выжал 30% ). Так вот деферед у меня организован хорошо, но есть один момент.

для каждого источника света
{
     ставим простейшие шейдеры для отрисовки в трафарет
    рисуем  ограничивающий меш в трафарет 
    ставим шейдеры для фулскрин квада( пиксельный отвечает за освещение )
    рисуем квад
}
как видно тут постоянно меняются шейдеры, хотелось бы этого избежать ибо смена шейдеров не быстрая. и я вот че подумал, может не менять шейдеры а просто в пиксельном шейдере освещения сделать ветвление типа
bool boundingVolumeRender;
...
if( boundingVolumeRender )
   return float4( 1, 1, 1, 1 );
else
   calculateLighting
получается в пиксельном шейдере статическое ветвление, оно практически бесплатно, вершинный шейдер тоже не проблема, ибо разница только в матрицах - для ограничивающего объема это worldViewProjection, а для квада это просто projection.
__________________

(Offline)
 
Ответить с цитированием