aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/linden/indra/newview/app_settings/shaders/class1/deferred/avatarAlphaF.glsl
diff options
context:
space:
mode:
authorJacek Antonelli2009-04-30 13:04:20 -0500
committerJacek Antonelli2009-04-30 13:07:16 -0500
commitca8149ca6d157eb4b5fc8ba0e5ba3a6e56f72e7e (patch)
tree8348301d0ac44a524f1819b777686bf086907d76 /linden/indra/newview/app_settings/shaders/class1/deferred/avatarAlphaF.glsl
parentSecond Life viewer sources 1.22.11 (diff)
downloadmeta-impy-ca8149ca6d157eb4b5fc8ba0e5ba3a6e56f72e7e.zip
meta-impy-ca8149ca6d157eb4b5fc8ba0e5ba3a6e56f72e7e.tar.gz
meta-impy-ca8149ca6d157eb4b5fc8ba0e5ba3a6e56f72e7e.tar.bz2
meta-impy-ca8149ca6d157eb4b5fc8ba0e5ba3a6e56f72e7e.tar.xz
Second Life viewer sources 1.23.0-RC
Diffstat (limited to 'linden/indra/newview/app_settings/shaders/class1/deferred/avatarAlphaF.glsl')
-rw-r--r--linden/indra/newview/app_settings/shaders/class1/deferred/avatarAlphaF.glsl68
1 files changed, 68 insertions, 0 deletions
diff --git a/linden/indra/newview/app_settings/shaders/class1/deferred/avatarAlphaF.glsl b/linden/indra/newview/app_settings/shaders/class1/deferred/avatarAlphaF.glsl
new file mode 100644
index 0000000..6c94f5c
--- /dev/null
+++ b/linden/indra/newview/app_settings/shaders/class1/deferred/avatarAlphaF.glsl
@@ -0,0 +1,68 @@
1/**
2 * @file avatarAlphaF.glsl
3 *
4 * Copyright (c) 2007-$CurrentYear$, Linden Research, Inc.
5 * $License$
6 */
7
8uniform sampler2D diffuseMap;
9uniform sampler2DShadow shadowMap0;
10uniform sampler2DShadow shadowMap1;
11uniform sampler2DShadow shadowMap2;
12uniform sampler2DShadow shadowMap3;
13uniform sampler2D noiseMap;
14
15uniform mat4 shadow_matrix[4];
16uniform vec4 shadow_clip;
17
18vec3 atmosLighting(vec3 light);
19vec3 scaleSoftClip(vec3 light);
20
21varying vec3 vary_ambient;
22varying vec3 vary_directional;
23varying vec4 vary_position;
24varying vec3 vary_normal;
25
26void main()
27{
28 float shadow = 1.0;
29 vec4 pos = vary_position;
30 vec3 norm = normalize(vary_normal);
31
32 vec3 nz = texture2D(noiseMap, gl_FragCoord.xy/128.0).xyz;
33
34 if (pos.z > -shadow_clip.w)
35 {
36
37 if (pos.z < -shadow_clip.z)
38 {
39 vec4 lpos = shadow_matrix[3]*pos;
40 shadow = shadow2DProj(shadowMap3, lpos).x;
41 }
42 else if (pos.z < -shadow_clip.y)
43 {
44 vec4 lpos = shadow_matrix[2]*pos;
45 shadow = shadow2DProj(shadowMap2, lpos).x;
46 }
47 else if (pos.z < -shadow_clip.x)
48 {
49 vec4 lpos = shadow_matrix[1]*pos;
50 shadow = shadow2DProj(shadowMap1, lpos).x;
51 }
52 else
53 {
54 vec4 lpos = shadow_matrix[0]*pos;
55 shadow = shadow2DProj(shadowMap0, lpos).x;
56 }
57 }
58
59
60 vec4 col = vec4(vary_ambient + vary_directional*shadow, gl_Color.a);
61 vec4 color = texture2D(diffuseMap, gl_TexCoord[0].xy) * col;
62
63 color.rgb = atmosLighting(color.rgb);
64
65 color.rgb = scaleSoftClip(color.rgb);
66
67 gl_FragColor = color;
68}