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

Может вместо смены шейдеров сделать ветвление? Например как это делают для материалов -- записывают индекс материала в гбуффер и затем выполняют нужный для этого материала код из общего шейдера.
Кароч ветвление делать не нужно. Если убрать запись цвета (gpDevice->SetRenderState( D3DRS_COLORWRITEENABLE, 0x00000000 ); ) то пиксельный шейдер не выполняется, следовательно можно не менять пиксельный шейдер( оставить активным шейдер света ) - я понял это исходя из замеров производительности: 70 источников света в кадре без записи цвета при рендере в трафарет - 64 фпс, с записью цвета 28 фпс. Так что одну проблему я убрал, но блин все равно у меня прирост фпс вообще мизерный - 5-7 к\с. Попробую еще рисовать сферку вместо квада, как предложил Mr_F_.

upd. Разве блендинг выполняется для фрагментов не прошедших тест трафарета?
__________________

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