вобщем я на днях попробую сделать. если получится - отпишусь сюда.
Bonus
> зачем знать цвет источника света? тень ведь всегда черная
Тень то черная, а вот свет - нет.
2 лампочки разного цвета и один етот буффер, с суммириванной тенью - что с ним делать...?
Z
> 2 лампочки разного цвета и один етот буффер, с суммириванной тенью - что с ним
> делать...?
2 буфера, в одном освещение в другом тень. освещение будет с цветом
Bonus
> 2 буфера, в одном освещение в другом тень. освещение будет с цветом
Буфер с цветом освещается, все равно что теней нет, так?
И ети два буфера заводим для сомнительного удовольствия иметь скрин-спейс блюр всех теней на екране разом...?
Z
> Буфер с цветом освещается, все равно что теней нет, так?
нет, в буфер с цветом попадает и тень и освещение. в буфер тени попадает только тень (1 или 0).
> И ети два буфера заводим для сомнительного удовольствия иметь скрин-спейс блюр
> всех теней на екране разом...?
выигрышь в том, что при построении тени нужно только одна выборка из шадомапы, а блюр будет делаться только один раз при финальном проходе.
P.S. освещение можно рисовать в backbuffer, у меня сейчас так рисуется.
Bonus
> а блюр будет делаться только один раз при финальном проходе
Ето один раз на лампочку, так?
Z
> Ето один раз на лампочку, так?
нет, на весь кадр.
Правка: см. пост 52
Bonus
> Правка: см. пост 52
Там не понятно, в текстуре освещения есть затененность или нет?
Если да, то непонятно потом смегчение тени, да и отдельнъй буффер тени зачем - чтобъ покраям сгладить и убрать немного света по краям для мягкости?
Z
> Там не понятно, в текстуре освещения есть затененность или нет?
будет - это нужно для того, чтобы не считать освещение в затененных пикселях
> Если да, то непонятно потом смегчение тени, да и отдельнъй буффер тени зачем -
> чтобъ покраям сгладить и убрать немного света по краям для мягкости?
буфер с освещением размывать нельзя, потому что там бамп и т.п., поэтому размывать нужно отдельный буфер с тенями.
Bonus
> буфер с освещением размывать нельзя, потому что там бамп и т.п., поэтому
> размывать нужно отдельный буфер с тенями.
Ну вот, размъл тъ тот буффер - и что с ним делаеш?
Z
> Ну вот, размъл тъ тот буффер - и что с ним делаеш?
пока еще не делаю, только планирую...
дальше нужно сделать финальный проход примерно так result = diffuseColor * light * shadow; light - значение из текстуры освещения, shadow - значение из текстуры тени.
Bonus
> result = diffuseColor * light * shadow
ну, в буффере освещения уже имеем все light*shadow, а в другом имеем смесь всех shadow. Кого и когда блюрим и как смешиваем потом?
в одном буфере освещение с четкими квадратными тенями, во втором просто квадратные тени без освещения. блурим второй буфер.
в финальном проходе там где тень в освещении там итак 0, поэтому умножение ничего не даст...
но там где нет тени туда будут накладываться блуренные границы тени, поэтому умножение даст нужный результат.
Bonus
> но там где нет тени туда будут накладываться блуренные границы тени
Да, но ето все же даст резкие тени, если несколько лампочек бросают тень одна на другую, т.е. буффер тени будет весь заполнен.
уже кое-что получилось!
на скрине слева только тени от двух источников (формат RG16F). справа освещение и тени (RGBA8).
работает просто аддитивный блендинг без всяких дополнительных буферов.
теперь нужно правильно размыть тени. Cheater, можешь показать как ты размываешь тени?
Тема в архиве.