132001f49Smrg// Fragment shader for 2D texture with shadow attenuation
232001f49Smrg// Brian Paul
332001f49Smrg
432001f49Smrg
532001f49Smrguniform sampler2D tex2d;
632001f49Smrguniform vec3 lightPos;
732001f49Smrg
832001f49Smrgvoid main()
932001f49Smrg{
1032001f49Smrg   // XXX should compute this from lightPos
1132001f49Smrg   vec2 shadowCenter = vec2(-0.25, -0.25);
1232001f49Smrg
1332001f49Smrg   // d = distance from center
1432001f49Smrg   float d = distance(gl_TexCoord[0].xy, shadowCenter);
1532001f49Smrg
1632001f49Smrg   // attenuate and clamp
1732001f49Smrg   d = clamp(d * d * d, 0.0, 2.0);
1832001f49Smrg
1932001f49Smrg   // modulate texture by d for shadow effect
2032001f49Smrg   gl_FragColor = d * texture2D(tex2d, gl_TexCoord[0].xy, 0.0);
2132001f49Smrg}
22