Updated water shaders to support darkening when out of LOS.

This was SVN commit r4269.
This commit is contained in:
Matei 2006-08-31 23:55:39 +00:00
parent c4d478a690
commit 4a45724ef2
2 changed files with 33 additions and 29 deletions

View File

@ -12,8 +12,9 @@ uniform float murkiness;
uniform float fullDepth;
varying vec3 worldPos;
varying float waterDepth;
varying float w;
varying float waterDepth;
varying float losMod;
const vec3 specularColor = vec3(0.15, 0.15, 0.15);
@ -53,7 +54,7 @@ void main()
specular = pow(max(0.0, ndoth), shininess) * sunColor * specularColor;
gl_FragColor.rgb = mix(refrColor + 0.3*specular, reflColor + specular, fresnel);
gl_FragColor.rgb = mix(refrColor + 0.3*specular, reflColor + specular, fresnel) * losMod;
// Make alpha vary based on both depth (so it blends with the shore) and view angle (make it
// become opaque faster at lower view angles so we can't look "underneath" the water plane)

View File

@ -2,15 +2,18 @@ uniform mat4 reflectionMatrix;
uniform mat4 refractionMatrix;
attribute float vertexDepth;
attribute float losMultiplier;
varying vec3 worldPos;
varying float waterDepth;
varying float w;
varying float waterDepth;
varying float losMod;
void main()
{
worldPos = gl_Vertex.xyz;
waterDepth = vertexDepth;
losMod = losMultiplier;
gl_TexCoord[0] = gl_MultiTexCoord0;
gl_TexCoord[1] = reflectionMatrix * gl_Vertex; // projective texturing
gl_TexCoord[2] = reflectionMatrix * gl_Vertex;