diff options
Diffstat (limited to 'indra/newview/app_settings/shaders/class3/deferred/cloudsF.glsl')
-rw-r--r-- | indra/newview/app_settings/shaders/class3/deferred/cloudsF.glsl | 16 |
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); |