flak_m/shaders/glsl/AmbientGlow_Brightmapped.fp

28 lines
802 B
GLSL

// imitation of the Unreal Engine 1.x ambient glow effect
// plus brightmapping
vec4 ProcessLight( vec4 color )
{
float bright = texture(brighttex,vTexCoord.st).x;
vec2 gs = texture(ambglow,vec2(.5)).xy;
if ( gs.x > .5 ) return vec4(min(color.rgb+vec3(bright),1.),color.a);
if ( gs.y > .5 )
{
float glow = max(0.,sin(timer*4.)-.5);
return vec4(min(color.rgb+vec3(bright)+vec3(glow),1.),color.a);
}
float glow = .25+.2*sin(timer*8.);
return vec4(min(color.rgb+vec3(bright)+vec3(glow),1.),color.a);
}
vec4 ProcessTexel()
{
vec2 gs = texture(ambglow,vec2(.5)).xy;
if ( gs.x > .5 ) getTexel(vTexCoord.st);
if ( gs.y > .5 )
{
float glow = max(0.,sin(timer*4.)-.5);
vec4 col = getTexel(vTexCoord.st);
return vec4(min(col.rgb+vec3(glow),1.),col.a);
}
return getTexel(vTexCoord.st);
}