projects
/
carveJwlIkooP6JGAAIwe30JlM.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
df shadows
[carveJwlIkooP6JGAAIwe30JlM.git]
/
shaders
/
terrain.fs
diff --git
a/shaders/terrain.fs
b/shaders/terrain.fs
index 84482af91af1a9fc8b7fd9e5b90f1d04abbe4bda..3f5cd3abdf28a3a43a80a9a5ead999fd35764e1b 100644
(file)
--- a/
shaders/terrain.fs
+++ b/
shaders/terrain.fs
@@
-1,18
+1,26
@@
-out vec4 FragColor;
-
uniform sampler2D uTexGarbage;
uniform sampler2D uTexGradients;
uniform vec3 uCamera;
uniform sampler2D uTexGarbage;
uniform sampler2D uTexGradients;
uniform vec3 uCamera;
+uniform vec3 uSandColour;
+uniform vec2 uBlendOffset;
+uniform vec3 uBoard0;
+uniform vec3 uBoard1;
in vec4 aColour;
in vec2 aUv;
in vec3 aNorm;
in vec3 aCo;
in vec4 aColour;
in vec2 aUv;
in vec3 aNorm;
in vec3 aCo;
+in vec3 aWorldCo;
#include "common_world.glsl"
#include "common_world.glsl"
+#include "motion_vectors_fs.glsl"
void main()
{
void main()
{
+ compute_motion_vectors();
+
+ // Colour
+ // ------
vec3 vfrag = vec3(0.5,0.5,0.5);
// ws modulation
vec3 vfrag = vec3(0.5,0.5,0.5);
// ws modulation
@@
-31,15
+39,26
@@
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);
// 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 = texture( uTexGradients, uvgradients ).rgb;
- vfrag = mix( vfrag, vec3(1.0,0.9,0.8), amtsand );
+ vfrag = mix( vfrag, uSandColour, amtsand );
+
+ qnorm = mix( qnorm, aNorm, amtsand );
+
+ if( g_light_preview == 1 )
+ {
+ vfrag = vec3(0.5);
+ }
// Lighting
// Lighting
- vec3 halfview = normalize( uCamera - aCo );
+ vec3 halfview = uCamera - aCo;
+ float fdist = length( halfview );
+ halfview /= fdist;
+
vfrag = do_light_diffuse( vfrag, qnorm );
vfrag = do_light_diffuse( vfrag, qnorm );
- vfrag = do_light_spec( vfrag, qnorm, halfview, 0.
2 * rgarbage.a
);
+ vfrag = do_light_spec( vfrag, qnorm, halfview, 0.
1
);
vfrag = do_light_shadowing( vfrag );
vfrag = do_light_shadowing( vfrag );
+ vfrag = apply_fog( vfrag, fdist );
-
FragColor = vec4(
vfrag, 1.0 );
+
oColour = vec4(
vfrag, 1.0 );
}
}