// 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.0),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 = 0.25+0.2*sin(timer*8); return vec4(min(color.rgb+vec3(bright)+vec3(glow),1.0),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); }