#opengl #glsl #alpha #lighting #specular
#opengl #glsl #альфа #Освещение #зеркальный
Вопрос:
Как я могу смешать диффузную текстуру с зеркальной, какую функцию gL Blend мне следует использовать и когда. Мое зеркальное освещение основано на специальной текстуре, которая обладает прозрачностью. На данный момент я просто изменяю яркость пикселя относительно альфа-значения и объединяю результат с диффузной текстурой:
"texture(SH_MAP, TextureCoords).rgba * texture(SH_MAP, TextureCoords).a"
vec4 m_TotalColor = m_DiffuesColor m_SpecularColor;
Есть ли лучший способ добиться этого с помощью смешивания?
Ответ №1:
Обычно уравнение с уменьшением освещенности является (LightColor / DistanceSquared) * (DiffuseColor Specular)
Добавление — это правильный способ смешивания зеркальных и рассеянных цветов, при условии, что в какой-то момент оно умножается на светлый цвет. Имейте в виду, когда вы работаете с линейным цветом и что после всех операций вы преобразуете в гамма-пространство.
Удачного затенения!