Очень классно придумано! Я вот тут написал аналогичный шэйдер источника
света под MaxMan, так вот какая мысль появилась, специальный шэйдер
который собирает источники света на угол PI без учёта косинуса угла нормали
к лучу света это всё здорово, но в источник света добавил строковую
переменную так вот когда она устанавливается в определенное значение
(например "doScatter"), то я делаю L = -normalize(calculatenormal(Ps));
я тогда он прекрасно работает и на стандартных материалах, это удобно
если в сцене уже есть куча готовых отстроенных материалов , а
перенастраивать лень!
))
Удачи!