X-Git-Url: https://harrygodden.com/git/?a=blobdiff_plain;f=shaders%2Fterrain.fs;h=6e01684cf9b85bb3825436488f5c2fc2c770e2de;hb=f7db507815e2822d971031c30f25e02b45e9c914;hp=456d08e779c28e605a408bb41b21c08b41eb6aa5;hpb=168eb5c363f510d60703498e01ffcdb52bf9fd07;p=carveJwlIkooP6JGAAIwe30JlM.git diff --git a/shaders/terrain.fs b/shaders/terrain.fs index 456d08e..6e01684 100644 --- a/shaders/terrain.fs +++ b/shaders/terrain.fs @@ -1,18 +1,24 @@ -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 @@ -31,9 +37,9 @@ void main() // 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 ); @@ -52,5 +58,5 @@ void main() vfrag = do_light_shadowing( vfrag ); vfrag = apply_fog( vfrag, fdist ); - FragColor = vec4(vfrag, 1.0 ); + oColour = vec4(vfrag, 1.0 ); }