diff options
author | Dave Parks <davep@lindenlab.com> | 2011-09-29 19:32:56 -0500 |
---|---|---|
committer | Dave Parks <davep@lindenlab.com> | 2011-09-29 19:32:56 -0500 |
commit | 7238714634e72dacc4b09c1c4ee98b16fb0c91fe (patch) | |
tree | 89500aeb877bcf5b3d00f0c96ec0f0321834de1e /indra/newview/app_settings/shaders/class1/lighting/lightFullbrightShinyWaterF.glsl | |
parent | 973fefc8d9014f6389b4c3f9633ce398fdf5399e (diff) |
SH-2507 Potential fix for basic shaders causing objects to disappear with some drivers (prune shader tree of unused shaders while we're at it)
Diffstat (limited to 'indra/newview/app_settings/shaders/class1/lighting/lightFullbrightShinyWaterF.glsl')
-rw-r--r-- | indra/newview/app_settings/shaders/class1/lighting/lightFullbrightShinyWaterF.glsl | 27 |
1 files changed, 21 insertions, 6 deletions
diff --git a/indra/newview/app_settings/shaders/class1/lighting/lightFullbrightShinyWaterF.glsl b/indra/newview/app_settings/shaders/class1/lighting/lightFullbrightShinyWaterF.glsl index bd67e2659e..c10cde98e0 100644 --- a/indra/newview/app_settings/shaders/class1/lighting/lightFullbrightShinyWaterF.glsl +++ b/indra/newview/app_settings/shaders/class1/lighting/lightFullbrightShinyWaterF.glsl @@ -21,18 +21,33 @@ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA * $/LicenseInfo$ */ - + #ifdef DEFINE_GL_FRAGCOLOR out vec4 gl_FragColor; -#endif +#endif +VARYING vec4 vertex_color; +VARYING vec2 vary_texcoord0; +VARYING vec3 vary_texcoord1; -uniform sampler2D diffuseMap; uniform samplerCube environmentMap; -VARYING vec2 vary_texcoord0; +vec3 fullbrightShinyAtmosTransport(vec3 light); +vec3 fullbrightScaleSoftClip(vec3 light); +vec4 applyWaterFog(vec4 color); -void fullbright_shiny_lighting_water() +void fullbright_shiny_lighting_water() { - gl_FragColor = texture2D(diffuseMap, vary_texcoord0.xy); + vec4 color = diffuseLookup(vary_texcoord0.xy); + color.rgb *= vertex_color.rgb; + + vec3 envColor = textureCube(environmentMap, vary_texcoord1.xyz).rgb; + color.rgb = mix(color.rgb, envColor.rgb, vertex_color.a); + + color.rgb = fullbrightShinyAtmosTransport(color.rgb); + color.rgb = fullbrightScaleSoftClip(color.rgb); + color.a = max(color.a, vertex_color.a); + + gl_FragColor = applyWaterFog(color); } + |