projects
/
carveJwlIkooP6JGAAIwe30JlM.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
angle limit constraint
[carveJwlIkooP6JGAAIwe30JlM.git]
/
shaders
/
terrain.fs
diff --git
a/shaders/terrain.fs
b/shaders/terrain.fs
index 84482af91af1a9fc8b7fd9e5b90f1d04abbe4bda..de8958d2d31847c7e587e803b4cd4c70f3754d7a 100644
(file)
--- a/
shaders/terrain.fs
+++ b/
shaders/terrain.fs
@@
-8,6
+8,7
@@
in vec4 aColour;
in vec2 aUv;
in vec3 aNorm;
in vec3 aCo;
in vec2 aUv;
in vec3 aNorm;
in vec3 aCo;
+in vec3 aWorldCo;
#include "common_world.glsl"
#include "common_world.glsl"
@@
-33,13
+34,24
@@
void main()
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 );
vfrag = texture( uTexGradients, uvgradients ).rgb;
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 );
vfrag = texture( uTexGradients, uvgradients ).rgb;
- vfrag = mix( vfrag, vec3(1.0,0.9,0.8), amtsand );
+ vfrag = mix( vfrag, vec3(1.0,0.9,0.8)*0.9, 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 );
+ FragColor = vec4(vfrag, 1.0 );
}
}