add motion vectors to all shaders
[carveJwlIkooP6JGAAIwe30JlM.git] / shaders / water.fs
index 9f9e8be54e5dc41302173050a2711a999a46eb28..eced89aef82cb4e6eedc85f305bda45374a11202 100644 (file)
@@ -1,5 +1,3 @@
-out vec4 FragColor;
-
 uniform sampler2D uTexMain;
 uniform sampler2D uTexDudv;
 uniform sampler2D uTexBack;
@@ -9,6 +7,9 @@ uniform float uTime;
 uniform vec3 uCamera;
 uniform float uSurfaceY;
 
+uniform vec3 uShoreColour;
+uniform vec3 uOceanColour;
+
 in vec4 aColour;
 in vec2 aUv;
 in vec3 aNorm;
@@ -16,13 +17,12 @@ in vec3 aCo;
 in vec3 aWorldCo;
 
 #include "common_world.glsl"
+#include "motion_vectors_fs.glsl"
 
 vec4 water_surf( vec3 halfview, vec3 vnorm, float depthvalue, 
       vec4 beneath, vec4 above )
 {
-   vec3 colour_shore = vec3( 0.21, 0.6, 0.8 );
-   vec3 colour_ocean = vec3( 0.01, 0.1, 0.2 );
-   vec3 surface_tint = mix(colour_shore, colour_ocean, depthvalue);
+   vec3 surface_tint = mix(uShoreColour, uOceanColour, depthvalue);
 
    float ffresnel = pow(1.0-dot( vnorm, halfview ),5.0);
 
@@ -42,6 +42,8 @@ vec4 water_surf( vec3 halfview, vec3 vnorm, float depthvalue,
 
 void main()
 {
+   compute_motion_vectors();
+
    // Create texture coords
    vec2 ssuv = gl_FragCoord.xy*uInvRes;
    
@@ -73,5 +75,5 @@ void main()
    // Composite
    vec4 vsurface = water_surf( halfview, surfnorm, depthvalue, beneath, above );
    vsurface.a -= fdist;
-   FragColor = mix( vsurface, vec4(1.0,1.0,1.0,0.5), fband );
+   oColour = mix( vsurface, vec4(1.0,1.0,1.0,0.5), fband );
 }