clustered forward shading
Кластерный рендеринг — обновленная демка
Скачать для Windows
Clustered Forward Shading
Метод очень перспективный — минимальная нагрузка на GPU, всего две дополнительные служебные текстуры (кластер и буфер источников света), хорошая масштабируемость и почти полная независимость от сложности сцены (есть лишь зависимость от ее размера — чем больше сцена, тем выше разрешение кластера).
Есть, впрочем, и недостатки — во-первых, небольшая дополнительная нагрузка на CPU при обновлении 3D-текстуры и буфера. Но обновлять их нужно только при движении источников света — если у вас статичный свет, то оверхед будет нулевой. Другое узкое место — передача буфера источников света в видеопамять. У меня это текстура GL_RGB32F шириной N * 8, где N — количество ячеек кластера, и высотой 4 — по одной строке на атрибут. N может достигать 1024 и выше — передавать такой буфер из системной памяти каждый кадр может показаться малоэффективным, но можно обновлять не весь буфер, а только те его части, где меняется список источников света (маловероятно, что в обычной игровой ситуации будут сотни движущихся ламп).
Надеюсь вскоре доделать и выложить демку с реализацией данного метода.