glonkers/examples/wavy.glsl
2026-02-24 19:32:56 +01:00

31 lines
1.1 KiB
GLSL

#define PI 3.1415926538
void mainImage(out vec4 fragColor, in vec2 fragCoord) {
vec2 uv = fragCoord / iResolution;
vec2 lines_uv = uv;
// twist?
// distance from middle
//float distance = distance(fragCoord, vec2(0.5, 0.5));
float distance = distance(uv, vec2(0.5, 0.5));
float inverse_distance = 1.0 - distance;
float inverse_distance_magnified = inverse_distance*inverse_distance;
//lines_uv += (lines_uv - vec2(0.5, 0.5)) * inverse_distance * 3.0;
float rot = PI * (inverse_distance_magnified);
mat2x2 rotm = mat2x2(
cos(rot), -sin(rot),
sin(rot), cos(rot)
);
lines_uv *= rotm;
//mat2x2 x = mat2x2(1.0, 1.0, 1.0, 1.0);
// The lines themselves
float lines_timescale = iTime * 0.6;
lines_uv.x += sin(lines_timescale + lines_uv.y * 30.0) * 0.2;// * sin(lines_timescale);
float hor_lines = sin(lines_uv.x * 10.0)/2.0 + 0.5;
hor_lines = sign(hor_lines -0.5);
//hor_lines = sin(iTime * 3.0 +hor_lines * 2.0 + uv.y / 50.0);
//fragColor = vec4(uv.x, uv.y, 1.0, 1.0);
fragColor = vec4(hor_lines * 0.7, inverse_distance, inverse_distance, 1.0);
}