mirror of
https://github.com/CookieCollective/Live-Coding-Sources.git
synced 2025-07-22 08:40:12 +02:00
30 lines
745 B
GLSL
30 lines
745 B
GLSL
precision mediump float;
|
|
uniform float time;
|
|
uniform vec2 resolution;
|
|
|
|
mat2 rot(float a) {
|
|
float c=cos(a), s=sin(a);
|
|
return mat2(c, s, -s, c);
|
|
}
|
|
|
|
float xor(float a, float b) {
|
|
return (min(a + b, 1.) - a * b);
|
|
}
|
|
|
|
#define palette(a,b,c,d,t) (a+b*cos(6.283*(c*t+d)))
|
|
|
|
void main() {
|
|
vec2 uv = gl_FragCoord.xy / resolution.xy;
|
|
uv -= .5;
|
|
uv.x *= resolution.x / resolution.y;
|
|
|
|
float t = mod(time, 64.) / 8.;
|
|
uv *= rot((floor(t) + smoothstep(.95, 1., fract(t))) * 6.283 / 8.);
|
|
float mask = step(1., mod(uv.x*8. + time, 2.));
|
|
mask = xor(mask, step(1., mod(uv.y*8. + sin(time) * .2, 2.)));
|
|
|
|
vec3 color = palette(vec3(.5), vec3(.5), vec3(1.), vec3(0,1,2)/3., time + uv.x*2. + sin(uv.y*4.));
|
|
|
|
gl_FragColor = vec4(mask*color, 1.0);
|
|
}
|