X-Git-Url: https://harrygodden.com/git/?a=blobdiff_plain;f=shaders%2Fscene_terrain.fs;h=47a98892cd15fb76e89e14ac2643bcb2fe5c3ea9;hb=refs%2Fheads%2Fmaster;hp=a1feb1a3be500a9141925bc3e62ce509d9367ab0;hpb=f99902f513b0ad606437bf32de47405dd4ea5f98;p=carveJwlIkooP6JGAAIwe30JlM.git diff --git a/shaders/scene_terrain.fs b/shaders/scene_terrain.fs index a1feb1a..47a9889 100644 --- a/shaders/scene_terrain.fs +++ b/shaders/scene_terrain.fs @@ -1,9 +1,10 @@ uniform sampler2D uTexGarbage; uniform sampler2D uTexGradients; uniform vec3 uCamera; -uniform vec3 uSandColour; +uniform vec4 uSandColour; uniform vec2 uBlendOffset; +#include "light_clearskies_stddef.glsl" #include "common_scene.glsl" #include "motion_vectors_fs.glsl" @@ -32,11 +33,10 @@ 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); + float amtsand = clamp( max((aCo.y - 10.0) * -0.1,0.0)*qnorm.y, 0.0, 1.0 ); vec2 uvgradients = aUv + vec2( amtgrass + rgarbage.a*0.8 )*uBlendOffset; vfrag = texture( uTexGradients, uvgradients ).rgb; - vfrag = mix( vfrag, uSandColour, amtsand ); - + vfrag = mix( vfrag, uSandColour.rgb, amtsand*uSandColour.a ); qnorm = mix( qnorm, aNorm.xyz, amtsand ); if( g_light_preview == 1 )