void main() { const vec3 color = vec3(0.2, 0.4, 1.0); vec2 uv = gl_TexCoord[0].st; vec2 pt = uv * vec2(2.0) - vec2(1.0); float d_horiz = abs(pt.x); float d_vert = max(abs(pt.y), 0.0); float beam_sharpness = 80.0 * min(uv.y + 0.3, 1.0); float beam_intensity = 6.0 * (1.0 - uv.y); float glow_u = pow(1.0 - smoothstep(0.0, 1.0, d_horiz), beam_sharpness) * beam_intensity; float glow_v = 1.0 - smoothstep(0.8, 1.0, d_vert); float glow = glow_u * glow_v; gl_FragColor.rgb = color * glow;// + vec3(0.0, 1.0, 0.0) * step(0.99, max(abs(pt.x), abs(pt.y))); gl_FragColor.a = 1.0; }