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