water fog material prop; ragdoll float only on drowned
[carveJwlIkooP6JGAAIwe30JlM.git] / shaders / scene_route.fs
index a2eeb99c810b50a17ce93eabf0b6a53b8250a90e..946d4b7ae291782316ed2b0e53829c32915f1e9e 100644 (file)
@@ -2,12 +2,18 @@ uniform sampler2D uTexGarbage;
 uniform sampler2D uTexGradients;
 uniform vec3 uCamera;
 uniform vec4 uColour;
-uniform vec3 uBoard0;
-uniform vec3 uBoard1;
 
+#include "light_clearskies_stddef.glsl"
 #include "common_scene.glsl"
 #include "motion_vectors_fs.glsl"
 
+float filtered_stripe( in float p, in float ddx, in float ddy )
+{
+   float w = max(abs(ddx), abs(ddy)) + 0.02;
+   float i = (abs(fract((p-0.5*w)/2.0)-0.5)-abs(fract((p+0.5*w)/2.0)-0.5))/w;
+   return 0.5 - i;
+}
+
 void main()
 {
    compute_motion_vectors();
@@ -32,16 +38,18 @@ void main()
    vfrag = pow(uColour.rgb,vec3(1.0/2.2));
    vfrag -= rgarbage.a*0.1;
 
-   if( wgarbage.g < 0.3 )
+   if( wgarbage.g < 0.1 )
       discard;
 
+   float movep = (aUv.x + abs(aUv.y-0.5)*0.4 - g_realtime)*2.0;
+   float stripe = filtered_stripe( movep, dFdx(movep), dFdy(movep) );
+   vfrag *= 0.9+stripe*uColour.a; 
+
    if( g_light_preview == 1 )
    {
       vfrag = vec3(0.5);
    }
 
    // Lighting
-
-   vfrag = scene_do_lighting( vfrag, qnorm );
-   oColour = vec4(vfrag, 1.0);
+   oColour = vec4( scene_compute_lighting( vfrag, qnorm, aWorldCo ), 1.0 );
 }