X-Git-Url: https://harrygodden.com/git/?a=blobdiff_plain;f=shaders%2Fvg%2Fgate.fs.glsl;fp=shaders%2Fvg%2Fgate.fs.glsl;h=ba48f1efdf6f64a0fafc797560af42f70fa6b2c0;hb=ecc4dfbfb3adf91d2dfc03ba0ec9a821fcc2390c;hp=0000000000000000000000000000000000000000;hpb=3bb0287d544a4cb75de9afe2927ac8e946f3a18e;p=carveJwlIkooP6JGAAIwe30JlM.git diff --git a/shaders/vg/gate.fs.glsl b/shaders/vg/gate.fs.glsl new file mode 100644 index 0000000..ba48f1e --- /dev/null +++ b/shaders/vg/gate.fs.glsl @@ -0,0 +1,27 @@ +out vec4 FragColor; + +uniform sampler2D uTexMain; +uniform sampler2D uTexWater; +uniform vec2 uInvRes; +uniform float uTime; +uniform vec3 uCam; + +in vec3 aNorm; +in vec2 aUv; +in vec3 aCo; + +void main() +{ + vec2 ssuv = gl_FragCoord.xy*uInvRes; + vec4 mapwater = texture( uTexWater, vec2(aUv.x,aUv.y-uTime)); + + float undistort = smoothstep(0.1,0.6,distance( uCam, aCo )*0.1); + vec2 trimedge = smoothstep(0.0,0.2,1.0-abs(ssuv-0.5)*2.0); + undistort *= trimedge.x * trimedge.y; + + vec2 warpamt = (mapwater.rg-0.5)*0.05*aUv.y*undistort; + vec4 mapbackbuffer = texture( uTexMain, ssuv + warpamt ); + + float opacity = 1.0-smoothstep(0.4,1.0,aUv.y); + FragColor = vec4( mapbackbuffer.rgb, opacity ); +}