diff --git a/experiments/exercises/TEST.png b/experiments/exercises/TEST.png new file mode 100644 index 0000000..2a64203 Binary files /dev/null and b/experiments/exercises/TEST.png differ diff --git a/experiments/exercises/offset_patterns.frag b/experiments/exercises/offset_patterns.frag index 9bbab22..b14a791 100644 --- a/experiments/exercises/offset_patterns.frag +++ b/experiments/exercises/offset_patterns.frag @@ -1,43 +1,6 @@ -#ifdef GL_ES precision mediump float; -#endif -uniform vec2 u_resolution; -uniform vec2 u_mouse; -uniform float u_time; - -#define PI 3.14159265359 - -const vec3 uAColor = vec3(.5,.5,.5); -const vec3 uBColor = vec3(.5,.5,.5); -const vec3 uCColor = vec3(1.,1.,1.); -const vec3 uDColor = vec3(.0,.33,.67); - -//get colors from http://dev.thi.ng/gradients/ -vec3 cosPalette(float t) { return uAColor + uBColor*cos(6.28318*(uCColor*t+uDColor)); } - -float fill(float x, float size) { return 1.-step(size, x); } - -float circleSDF(vec2 st) { return length(st); } - -void main() { - vec2 st = (gl_FragCoord.xy*2. - u_resolution.xy)/u_resolution.y; - vec3 color = vec3(0.0,0.0,0.0); - float alpha = 1.0; - float sp = u_time/8.; - float m = step(mod(sp*10.,2.),1.); - vec2 st2 = st; - //vec2 st2 = fract(st*10.)-.5; - vec2 u = vec2(1.); - u.x = step(mod(st2.y*10.,2.),1.)*2.-1.; - u.y = step(mod(st2.x*10.,2.),1.)*2.-1.; - st2.x += u.x*fract(sp*m); - st2.y += u.y*fract(sp*(1.-m)); - st2 = fract(st2*10.)-.5; - st2 *= 2.; - float circle = (circleSDF(st2)); - float circle2 = (circle); - color += fill(circle,.2); - color += fill(min(circle,circle2),.5); - - gl_FragColor = vec4(color, alpha); -} +uniform vec2 iResolution; +uniform float iTime; +float fi(float x,float s){return 1.-step(s, x);} +float cs(vec2 s){return length(s);} +void main(){vec2 st=(gl_FragCoord.xy*2.-iResolution.xy)/iResolution.y; vec3 co=vec3(0.0);float sp=iTime/8.;float m=step(mod(sp*10.,2.),1.);vec2 st2=st;vec2 u=vec2(1.);u.x=step(mod(st2.y*10.,2.),1.)*2.-1.;u.y=step(mod(st2.x*10.,2.),1.)*2.-1.;st2.x+=u.x*fract(sp*m);st2.y+=u.y*fract(sp*(1.-m));st2=fract(st2*10.)-.5;st2*=2.;float c=(cs(st2));float c2=(c);co+=fi(c,.2);co+=fi(min(c,c2),.5);gl_FragColor=vec4(co, 1.);} diff --git a/learning/patterns/rotates.frag b/learning/patterns/rotates.frag new file mode 100644 index 0000000..48c32b8 --- /dev/null +++ b/learning/patterns/rotates.frag @@ -0,0 +1,59 @@ +#ifdef GL_ES +precision mediump float; +#endif +uniform vec2 u_resolution; +uniform vec2 u_mouse; +uniform float u_time; + +#define PI 3.14159265359 + +vec2 rotate2D (vec2 st, float angle) { + st -= .5; + st = mat2(cos(angle),-sin(angle), + sin(angle),cos(angle))*st; + st += .5; + return st; + +} + +vec2 tile (vec2 st, float zoom) { + st *= zoom; + return fract(st); +} + +vec2 rotateTilePatter(vec2 st) { + st *= 2.; + float index = 0.0; + index += step(1., mod(st.x,2.)); + index += step(1.,mod(st.y,2.))*2.; + st = fract(st); + + if(index == 1.) { + st = rotate2D(st, PI*.5); + } else if (index == 2.){ + st = rotate2D(st, PI*-.5); + } else if (index == 3.){ + st = rotate2D(st, PI); + } + + return st; +} + + +void main() { + vec2 st = (gl_FragCoord.xy*2. - u_resolution.xy)/u_resolution.y; +// vec2 st = gl_FragCoord.xy/u_resolution.xy; + + vec3 color = vec3(0.0,0.0,0.0); + float alpha = 1.0; + st = fract(st*2.); + st = rotateTilePatter(st); + + color += step(st.x,st.y); + + + + + + gl_FragColor = vec4(color, alpha); +}