28 lines
534 B
GLSL
28 lines
534 B
GLSL
uniform sampler2D warpx;
|
|
uniform sampler2D warpy;
|
|
|
|
out vec2 uv;
|
|
|
|
float decdepth(vec4 rgba) {
|
|
return dot(rgba, vec4(1.0, 1.0/255.0, 1.0/65025.0, 1.0/16581375.0));
|
|
}
|
|
|
|
void main()
|
|
{
|
|
vec4 pos = gl_ModelViewProjectionMatrix * gl_Vertex;
|
|
uv = gl_MultiTexCoord0.xy;
|
|
|
|
vec2 tc = pos.xy * vec2(0.5) + vec2(0.5);
|
|
|
|
float movex = decdepth(texture(warpx, tc));
|
|
float movey = decdepth(texture(warpy, tc));
|
|
|
|
float dx = movex * 2.0 - 1.0;
|
|
float dy = movey * 2.0 - 1.0;
|
|
|
|
dx *= 2.0;
|
|
dy *= 2.0;
|
|
|
|
gl_Position = pos + vec4(dx, dy, vec2(0.0));
|
|
}
|