2012-02-09 18:55:25 +01:00
|
|
|
#version 110
|
|
|
|
|
2008-09-18 04:14:05 +02:00
|
|
|
uniform mat4 reflectionMatrix;
|
|
|
|
uniform mat4 refractionMatrix;
|
2011-02-03 02:12:24 +01:00
|
|
|
uniform mat4 losMatrix;
|
2011-07-13 01:48:05 +02:00
|
|
|
uniform float repeatScale;
|
|
|
|
uniform vec2 translation;
|
2008-09-18 04:14:05 +02:00
|
|
|
|
|
|
|
varying vec3 worldPos;
|
|
|
|
varying float waterDepth;
|
|
|
|
|
2012-02-13 15:02:14 +01:00
|
|
|
attribute vec3 a_vertex;
|
|
|
|
attribute vec4 a_encodedDepth;
|
|
|
|
|
2008-09-18 04:14:05 +02:00
|
|
|
void main()
|
|
|
|
{
|
2012-02-13 15:02:14 +01:00
|
|
|
worldPos = a_vertex.xyz;
|
|
|
|
waterDepth = dot(a_encodedDepth.xyz, vec3(255.0, -255.0, 1.0));
|
|
|
|
gl_TexCoord[0].st = a_vertex.xz*repeatScale + translation;
|
|
|
|
gl_TexCoord[1] = reflectionMatrix * vec4(a_vertex, 1.0); // projective texturing
|
|
|
|
gl_TexCoord[2] = refractionMatrix * vec4(a_vertex, 1.0);
|
|
|
|
gl_TexCoord[3] = losMatrix * vec4(a_vertex, 1.0);
|
|
|
|
|
|
|
|
gl_Position = gl_ModelViewProjectionMatrix * vec4(a_vertex, 1.0);
|
2008-09-18 04:14:05 +02:00
|
|
|
}
|