summaryrefslogtreecommitdiff
path: root/indra/newview/app_settings/shaders/class3/deferred/cloudsF.glsl
diff options
context:
space:
mode:
Diffstat (limited to 'indra/newview/app_settings/shaders/class3/deferred/cloudsF.glsl')
-rw-r--r--indra/newview/app_settings/shaders/class3/deferred/cloudsF.glsl16
1 files changed, 15 insertions, 1 deletions
diff --git a/indra/newview/app_settings/shaders/class3/deferred/cloudsF.glsl b/indra/newview/app_settings/shaders/class3/deferred/cloudsF.glsl
index f8373215f0..015caad749 100644
--- a/indra/newview/app_settings/shaders/class3/deferred/cloudsF.glsl
+++ b/indra/newview/app_settings/shaders/class3/deferred/cloudsF.glsl
@@ -138,9 +138,23 @@ void main()
// Combine
vec4 color;
+ vec4 l1tap = vec4(1.0/sqrt(4*3.14159265), sqrt(3)/sqrt(4*3.14159265), sqrt(3)/sqrt(4*3.14159265), sqrt(3)/sqrt(4*3.14159265));
+
+ vec4 l1r = texture2D(sh_input_r, vec2(0,0));
+ vec4 l1g = texture2D(sh_input_g, vec2(0,0));
+ vec4 l1b = texture2D(sh_input_b, vec2(0,0));
+
+ vec3 sun_indir = vec3(-view_direction.xy, view_direction.z);
+ vec3 amb = vec3(dot(l1r, l1tap * vec4(1, sun_indir)),
+ dot(l1g, l1tap * vec4(1, sun_indir)),
+ dot(l1b, l1tap * vec4(1, sun_indir)));
+
+
+ amb = max(vec3(0), amb);
+
color.rgb = sun_color * cloud_color.rgb * (1. - alpha2);
color.rgb = pow(color.rgb, vec3(1.0 / 2.2));
- color.rgb += ambient;
+ color.rgb += amb;
frag_data[0] = vec4(color.rgb, alpha1);
frag_data[1] = vec4(0);