gzdoom-gles/wadsrc/static/shaders/glsl/func_warp3.fp
Christoph Oelckers 9f91fa8f43 - make the warp2 shader's formula match the software renderer's.
This fixes some jerkiness with vertical scrollers due to a bad sine period and makes the overall appearance of the effect what it was originally supposed to be. The old warp2 shader was not created by replicating the formula but by trial and error until it looked close enough.

A version of the old warp2 shader with a fixed sine period is still available as a custom hardware shader.
2016-05-04 13:47:40 +02:00

18 lines
417 B
GLSL

uniform float timer;
vec4 ProcessTexel()
{
vec2 texCoord = vTexCoord.st;
const float pi = 3.14159265358979323846;
vec2 offset = vec2(0.0,0.0);
float siny = sin(pi * 2.0 * (texCoord.y * 2.0 + timer * 0.75)) * 0.03;
offset.y = siny + sin(pi * 2.0 * (texCoord.x + timer * 0.75)) * 0.03;
offset.x = siny + sin(pi * 2.0 * (texCoord.x + timer * 0.45)) * 0.02;
texCoord += offset;
return getTexel(texCoord);
}