Skip to content

Instantly share code, notes, and snippets.

@demicuz
Created January 21, 2018 20:19
Show Gist options
  • Save demicuz/08b5b40df6c613a7a1ed75b91a0d691b to your computer and use it in GitHub Desktop.
Save demicuz/08b5b40df6c613a7a1ed75b91a0d691b to your computer and use it in GitHub Desktop.
VEDA issue (fast compilation time)
/*
{
server: 3000
}
*/
precision mediump float;
uniform float time;
uniform vec2 resolution;
uniform vec2 mouse;
vec2 m;
vec2 pos1 = vec2(.5, .5);
vec2 pos2 = vec2(.0);
vec2 pos3 = vec2(.1, 1.);
vec2 speed1 = vec2(.2, .34);
vec2 speed2 = vec2(-.2, .1);
vec2 speed3 = vec2(.1, .4);
// mirrors to -1..1
vec2 mirror(vec2 pos)
{
vec2 mul = (abs(pos) - 1.) / 2.;
vec2 reversed = step(1., mod(mul, 2.)); // 1.0 if reversed
vec2 r = fract(mul); // from 0 to 1
r = r * 2. - 1.;
r -= r * reversed * 2.;
return r;
}
void main()
{
m = mouse;
vec2 uv = gl_FragCoord.xy / resolution - vec2(.5);
uv.x *= resolution.x / resolution.y;
uv *= 2.;
vec3 color = vec3(.0);
pos1 += speed1 * time;
pos2 += speed2 * time;
pos3 += speed3 * time;
vec2 r1 = mirror(pos1);
vec2 r2 = mirror(pos2);
vec2 r3 = mirror(pos3);
color.r = fract(length(r1 - uv)*3.);
color.g = fract(length(r2 - uv)*3.);
color.b = fract(length(r3 - uv)*3.);
color *= step(abs(uv.x), 1.);
gl_FragColor = vec4(color, 1.0);
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment