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