blob: a6a80da47f2db24ab51d28c0f6048285c841a0d8 (
plain)
| 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
 | // Fragment shader for 2D texture with shadow attenuation
// Brian Paul
uniform sampler2D tex2d;
uniform vec3 lightPos;
void main()
{
   // XXX should compute this from lightPos
   vec2 shadowCenter = vec2(-0.25, -0.25);
   // d = distance from center
   float d = distance(gl_TexCoord[0].xy, shadowCenter);
   // attenuate and clamp
   d = clamp(d * d * d, 0.0, 2.0);
   // modulate texture by d for shadow effect
   gl_FragColor = d * texture2D(tex2d, gl_TexCoord[0].xy, 0.0);
}
 |