123456789101112131415161718192021 |
- // 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);
- }
|