X-Git-Url: https://harrygodden.com/git/?a=blobdiff_plain;f=shaders%2Fgpos.fs;fp=shaders%2Fgpos.fs;h=b21f7a7ff6b2b0bfb59112dd3c2bf9a841a76b94;hb=ecc4dfbfb3adf91d2dfc03ba0ec9a821fcc2390c;hp=0000000000000000000000000000000000000000;hpb=3bb0287d544a4cb75de9afe2927ac8e946f3a18e;p=carveJwlIkooP6JGAAIwe30JlM.git diff --git a/shaders/gpos.fs b/shaders/gpos.fs new file mode 100644 index 0000000..b21f7a7 --- /dev/null +++ b/shaders/gpos.fs @@ -0,0 +1,30 @@ +out vec4 FragColor; + +uniform vec3 uCamera; + +in vec4 aColour; +in vec2 aUv; +in vec3 aNorm; +in vec3 aCo; + +#include "common_world.glsl" + +// Water blending +// ============== + +float water_depth( vec3 pos, vec3 halfview ) +{ + vec3 pnorm = g_water_plane.xyz; + float pdist = g_water_plane.w; + + float d = dot( pnorm, halfview ); + float t = dot((pnorm*pdist - pos), pnorm) / d; + return t * g_water_fog; +} + +void main() +{ + vec3 halfview = normalize( uCamera - aCo ); + vec3 world_pos = vec3( aCo.y, aCo.x, aCo.z ); + FragColor = vec4( world_pos, water_depth( aCo, halfview ) ); +}