Back to shaders
Shader test bench
CrazyParametricFun
runnable transition
GLSL transition function. Stronghold supplies two demo textures and progress/time uniforms.
Code
// Author: mandubian
// License: MIT
uniform float a; // = 4
uniform float b; // = 1
uniform float amplitude; // = 120
uniform float smoothness; // = 0.1
vec4 transition(vec2 uv) {
vec2 p = uv.xy / vec2(1.0).xy;
vec2 dir = p - vec2(.5);
float dist = length(dir);
float x = (a - b) * cos(progress) + b * cos(progress * ((a / b) - 1.) );
float y = (a - b) * sin(progress) - b * sin(progress * ((a / b) - 1.));
vec2 offset = dir * vec2(sin(progress * dist * amplitude * x), sin(progress * dist * amplitude * y)) / smoothness;
return mix(getFromColor(p + offset), getToColor(p), smoothstep(0.2, 1.0, progress));
}