-out vec4 FragColor;
-
uniform sampler2D uTexGarbage;
uniform sampler2D uTexGradients;
uniform vec3 uCamera;
+uniform vec3 uSandColour;
+uniform vec2 uBlendOffset;
in vec4 aColour;
in vec2 aUv;
in vec3 aNorm;
in vec3 aCo;
+in vec3 aWorldCo;
#include "common_world.glsl"
+#include "motion_vectors_fs.glsl"
void main()
{
+ compute_motion_vectors();
+
+ // Colour
+ // ------
vec3 vfrag = vec3(0.5,0.5,0.5);
// ws modulation
// Colour blending
float amtgrass = step(qnorm.y,0.6);
float amtsand = min(max((aCo.y - 10.0) * -0.1,0.0)*qnorm.y,1.0);
- vec2 uvgradients = aUv + vec2( amtgrass*0.5 + rgarbage.a*0.4, 0.0 );
+ vec2 uvgradients = aUv + vec2( amtgrass + rgarbage.a*0.8 )*uBlendOffset;
vfrag = texture( uTexGradients, uvgradients ).rgb;
- vfrag = mix( vfrag, vec3(1.0,0.9,0.8)*0.9, amtsand );
+ vfrag = mix( vfrag, uSandColour, amtsand );
qnorm = mix( qnorm, aNorm, amtsand );
vfrag = do_light_shadowing( vfrag );
vfrag = apply_fog( vfrag, fdist );
- FragColor = vec4(vfrag, 1.0 );
+ oColour = vec4(vfrag, 1.0 );
}