df shadows
[carveJwlIkooP6JGAAIwe30JlM.git] / shaders / gpos.fs
1 out vec4 FragColor;
2
3 uniform vec3 uCamera;
4 uniform vec3 uBoard0;
5 uniform vec3 uBoard1;
6
7 in vec4 aColour;
8 in vec2 aUv;
9 in vec3 aNorm;
10 in vec3 aCo;
11 in vec3 aWorldCo;
12
13 #include "common_world.glsl"
14
15 // Water blending
16 // ==============
17
18 float water_depth( vec3 pos, vec3 halfview )
19 {
20 vec3 pnorm = g_water_plane.xyz;
21 float pdist = g_water_plane.w;
22
23 float d = dot( pnorm, halfview );
24 float t = dot((pnorm*pdist - pos), pnorm) / d;
25 return t * g_water_fog;
26 }
27
28 void main()
29 {
30 vec3 halfview = normalize( uCamera - aCo );
31 vec3 world_pos = vec3( aCo.y, aCo.x, aCo.z );
32 FragColor = vec4( world_pos, water_depth( aCo, halfview ) );
33 }