| 1 | varying vec4 refrCoords;  | 
|---|
| 2 | varying vec4 normCoords;  | 
|---|
| 3 | varying vec4 viewCoords; | 
|---|
| 4 | varying vec4 viewTangetSpace; | 
|---|
| 5 | varying vec4 lightTangetSpace; | 
|---|
| 6 |  | 
|---|
| 7 | uniform vec4 lightPos, cameraPos; | 
|---|
| 8 |  | 
|---|
| 9 |  | 
|---|
| 10 | void main() | 
|---|
| 11 | { | 
|---|
| 12 |         // Because we have a flat plane for water we already know the vectors for tangent space | 
|---|
| 13 |         vec4 tangent = vec4(1.0, 0.0, 0.0, 0.0); | 
|---|
| 14 |         vec4 normal = vec4(0.0, 1.0, 0.0, 0.0); | 
|---|
| 15 |         vec4 biTangent = vec4(0.0, 0.0, 1.0, 0.0); | 
|---|
| 16 |  | 
|---|
| 17 |         // Calculate the vector coming from the vertex to the camera | 
|---|
| 18 |         vec4 viewDir = cameraPos - gl_Vertex; | 
|---|
| 19 |  | 
|---|
| 20 |         // Compute tangent space for the view direction | 
|---|
| 21 |         viewTangetSpace.x = dot(viewDir, tangent); | 
|---|
| 22 |         viewTangetSpace.y = dot(viewDir, biTangent); | 
|---|
| 23 |         viewTangetSpace.z = dot(viewDir, normal); | 
|---|
| 24 |         viewTangetSpace.w = 1.0; | 
|---|
| 25 |  | 
|---|
| 26 |         // Calculate the vector that the light hits the vertex | 
|---|
| 27 |         vec4 lightDir = lightPos - gl_Vertex; | 
|---|
| 28 |  | 
|---|
| 29 |         // Compute tangent space for the light direction | 
|---|
| 30 |         lightTangetSpace.x = dot(lightDir, tangent); | 
|---|
| 31 |         lightTangetSpace.y = dot(lightDir, biTangent); | 
|---|
| 32 |         lightTangetSpace.z = dot(lightDir, normal); | 
|---|
| 33 |         lightTangetSpace.w = 1.0; | 
|---|
| 34 |  | 
|---|
| 35 |         refrCoords = gl_MultiTexCoord1; | 
|---|
| 36 |         normCoords = gl_MultiTexCoord2; | 
|---|
| 37 |  | 
|---|
| 38 |         // This calculates our current projection coordinates | 
|---|
| 39 |         viewCoords = gl_ModelViewProjectionMatrix * gl_Vertex; | 
|---|
| 40 |  | 
|---|
| 41 |         gl_Position = viewCoords; | 
|---|
| 42 | } | 
|---|