Live-Coding-Sources/2018-04-07/06-jeanmichel.frag
2018-04-22 16:20:00 +02:00

98 lines
1.8 KiB
GLSL

/*
{"IMPORTED": {
"guinness": {
"PATH": "./guinness.png",
},
},
"pixelRatio": 2,
"audio": true,
"camera": false,
"keyboard": true,
"midi": true,
}
*/
precision mediump float;
uniform float time;
uniform vec2 resolution;
uniform sampler2D camera;
uniform sampler2D key;
uniform sampler2D samples;
uniform sampler2D spetrum;
uniform sampler2D guinness;
mat2 rot(float a)
{
float c = cos(a), s = sin(a);
return mat2(c, s, -s, c);
}
vec3 circle(vec2 uv, vec2 pos, float r, float s){
vec3 res = vec3(smoothstep(r,r-s,length(uv+pos)-r));
return res;
}
void main () {
vec2 uv = gl_FragCoord.xy / resolution.xy;
uv-=0.5;
uv.x *= resolution.x / resolution.y;
vec3 res;
for (float i=0.; i<100.;i+=1.){
vec2 pos=vec2(0.5*sin(time+i),0.5*cos(0.5*time+i));
vec3 col =circle (uv.xy,pos,0.02,0.01);
col.x*=i;
res+= col;
}
for (float i=0.; i<100.;i+=1.){
vec2 pos=vec2(0.5*sin(time+i),0.5*cos(0.5*time+i));
res-= circle (uv.xy,pos,0.01,0.01);
}
for (float i=0.; i<100.;i+=1.){
vec2 pos=vec2(0.5*sin(time+i+3.14),0.5*cos(0.5*time+i));
vec3 col =circle (uv.xy,pos,0.02,0.01);
col.x*=i;
res+= col;
}
for (float i=0.; i<100.;i+=1.){
vec2 pos=vec2(0.5*sin(time+i+3.14),0.5*cos(0.5*time+i));
res-= circle (uv.xy,pos,0.01,0.01);
}
for (float i=0.; i<100.;i+=1.){
vec2 pos=vec2(0.5*sin(time+i+3.14*0.5),0.5*cos(0.5*time+i));
vec3 col =circle (uv.xy,pos,0.02,0.01);
col.x*=i;
res+= col;
}
for (float i=0.; i<100.;i+=1.){
vec2 pos=vec2(0.5*sin(time+i+3.14*0.5),0.5*cos(0.5*time+i));
res-= circle (uv.xy,pos,0.01,0.01);
}
gl_FragColor=vec4(res,1.);
}