// RGB split that ripples down the image and gets pushed around by your movement. uniform float amount; // 0.0 .. 0.05 = 0.012 uniform float waves; // 1.0 .. 80.0 = 24.0 uniform float react; // 0.0 .. 3.0 = 1.0 void main() { vec2 d = vec2(amount * sin(uv.y * waves + time * 3.0), 0.0); d += texture(flow, uv).xy * react; color = vec4(texture(camera, uv + d).r, texture(camera, uv).g, texture(camera, uv - d).b, 1.0); }