Просто каждый кадр я задаю в каждый зарегестрированый на сцене шейдер информацию о источниках освещения
|
не знаю как в GL (в webgl вот нельзя), но в DX9 можно было назначать константы не просто "в шейдер" а в конкретный константный регистр на видяхе, так можно было бы 1 раз на старте рендера все константы для всех лайтов засунуть, а потом шейдеры их бы юзали или не юзали.
В DX10 и далее это ещё более удобно обёрнуто в constant buffers. Основная философия - разделить константы на группы по частоте обновления.
мне вот всегда было интересно почему все используют нормалкарты в тангентспейсе. ведь для статики можно было бы использовать и в обектспейсе нормалкарты
|
потому что те же 8 бит на обжектспейс это маловато, будет палится низкое кач-во.
грубо говоря, с тбн у нас уже идеально гладкие нормали объекта, и мы им добавляем доп отклонение 8 битной нмапой лишь, а так тебе придётся все нормали на объекте задавать 8 битами.
я делал для террейна нормали 8 битные ворлдспейс, смотрелось херово, пришлось юзать 16 бит хотя бы.