fteqw/engine/shaders/vulkan/underwaterwarp.glsl
Spoike 5b4756f3d9 Lazy GLSL loading, for faster load times.
Fixed some xim issues, for proper keyboard input under x11.
Cmake project can now work for cross compiling win32 targets.
Some other fun-but-pointless stuff.



git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@5344 fc73d0e0-1445-4013-8a0c-d673dee63da5
2018-11-27 16:48:19 +00:00

37 lines
1.1 KiB
GLSL

!!cvarf r_waterwarp
!!samps 3
#include "sys/defs.h"
//this is a post processing shader that is drawn fullscreen whenever the view is underwater.
//its generally expected to warp the view a little.
layout(location=0) varying vec2 v_stc;
layout(location=1) varying vec2 v_warp;
layout(location=2) varying vec2 v_edge;
#ifdef VERTEX_SHADER
void main ()
{
gl_Position = ftetransform();
v_stc = vec2(v_texcoord.x, /*1.0-*/v_texcoord.y);
v_warp.s = e_time * 0.25 + v_texcoord.s;
v_warp.t = e_time * 0.25 + v_texcoord.t;
v_edge = v_texcoord.xy;
}
#endif
#ifdef FRAGMENT_SHADER
//uniform sampler2D s_t0;/*$currentrender*/
//uniform sampler2D s_t1;/*warp image*/
//uniform sampler2D s_t2;/*edge image*/
//uniform vec4 e_rendertexturescale;
//uniform float cvar_r_waterwarp;
#define e_rendertexturescale vec4(1.0,1.0,0.0,0.0)
void main ()
{
vec2 amp = (0.010 / 0.625) * cvar_r_waterwarp * texture2D(s_t2, v_edge).rg;
vec3 offset = (texture2D(s_t1, v_warp).rgb - 0.5) * 2.0;
vec2 temp = v_stc + offset.xy * amp;
gl_FragColor = texture2D(s_t0, temp*e_rendertexturescale.st);
}
#endif