21 lines
460 B
GLSL
21 lines
460 B
GLSL
extern Image scene;
|
|
extern Image light;
|
|
|
|
extern vec3 ambient;
|
|
|
|
vec4 effect(vec4 vcolor, Image unused, vec2 uv, vec2 px)
|
|
{
|
|
vec4 s = Texel(scene, uv);
|
|
vec3 l = Texel(light, uv).rgb;
|
|
|
|
l = clamp(l, 0.0, 1.0);
|
|
vec3 a = clamp(ambient, 0.0, 1.0);
|
|
|
|
// Канальный множитель: от ambient до 1 в зависимости от света
|
|
vec3 m = a + (vec3(1.0) - a) * l;
|
|
|
|
vec3 rgb = s.rgb * m;
|
|
|
|
return vec4(rgb, s.a);
|
|
}
|