From 30b87a48b03f2453c76b8a3eeac0c283d57cf807 Mon Sep 17 00:00:00 2001 From: beppe Date: Tue, 18 Jun 2024 22:37:23 +0200 Subject: [PATCH] ok, kben er --- experiments/exercises/TEST.png | Bin 0 -> 1814 bytes experiments/exercises/offset_patterns.frag | 47 ++-------------- learning/patterns/rotates.frag | 59 +++++++++++++++++++++ 3 files changed, 64 insertions(+), 42 deletions(-) create mode 100644 experiments/exercises/TEST.png create mode 100644 learning/patterns/rotates.frag diff --git a/experiments/exercises/TEST.png b/experiments/exercises/TEST.png new file mode 100644 index 0000000000000000000000000000000000000000..2a642030357794ec161f3a01d4fa6abeaab27c17 GIT binary patch literal 1814 zcmV+x2kH2UP)Chy2%&x7oCuR{4>(#`lMnkN&({JFV`E6>*Tm&s*PGRlbM)GQ0QfeJDMd z4O_8tH4d`0ce7&MkF_0Ff4WWUX*~<%t&O3O(a&PF`_SGit8FXXZWW(w;gCuD&d2QK zb15Izy+5ZL3-NPY{N1+&*VnV|&(W=Mv)<=FHy{AQ5=Nctzy19wsQ?JCt7`e>r ztZ|Hk9IH)wOgtSd! z$LzkHQg>CIiK6a<70Ks?7Tm@-h`VUxNc0wkQ(o0Mu9W0S;WTS^#6b>r ztSg)=6a~$*C@8-}ukN--LQ;Dh&MEB=_+xEvpj;hrLm^pRAY`GTk*QADYO4oOG_*Tk zvhNLufh6s9PSzwk7y&`4%4^sk)z(NV!yuIZA#FUV#4&Yh2xGgHWSM(C405d0yDmcT zj`COAxbV;ZwiDr+;vmk&Wq&T+q3udZtlw(ujs=1|$2iC}NB|FsJW2&ooj1cP`D-}M z%4ZzJJy(j(80MhK*nRgJx_O0z+aeGG%ce6MJ+zBsX6x*DzXlGzo8ury(po4+ewhv! zaWP)b@Vy%Pvz8zTK4LBB?3a08%bM|xyfphM%m|1lmyB?za>@d-*B5QQTC;S|ILK9@ z@ZGE0b>9dCkOyV5Ze}M$(!@ddWp%)c(>!kj|Hvgh#9qAp>Bb1i+Xysh)b0!Niy-5| zxPfp9$!32>Lg=dfh2&!Y`%ZSrab!6M_>Un7fedzoBvhDi?WqW5a4>#TcX*D2z`H03 z!u#e>dw&e->}M(uym|WA^BBlmSyQb%B~_xY6wY~<)EmarBOzFF7P7N@Tr+kCIw7k~ z2v_xqP(cv+R*^33KC2jE_ubQW8+=aN6bKCw;gZ}45)F8^wsSAX7It!Li;UiEFR)HjLIZk2IwkZyh zr3r;UYtu#RI}Cem3T=q!T*A>(>%PFKP(tp(c zNLx;CaS%F;VyD9vlpkM7h*tn5CkC@S?DB5a%8$cf!7H zvz9OJq^2O~zeLjGAa5NclGrIplcyIfIcwoImWO|=Ul631BP-;UFf4M)qfQ!Xq}x7@ zECzxSssm(@6*mp)btDTeA&Gu%MF@n(GDUW{u+^NS!YkQLW_G)M9a#(n-hCOEHpL&Uc?C-232*^#Ty5#M=&=9SC(`O6> zmLi`KV%T)f>liWJ*n-dd&st(27d96Db4~R$tJdkFB;*4tmhW<7AeOZeqD`U=&8jtj z#gU!xZW9L~H$N)5W)vQ-ErcowqeS_;eN`<6lJJ#hvuL*W8W71ZuVXpi{jUfIK+wPo zu_80+bXgQvNYbcEIj=vb8v^NZmzsVd_^%2AZZUm_ic~r_#X&UNK<6v8mydH6MD5WK zbaMEav_(KJa*{U6T4)8?f81YApT7hj13BO%JVm7m#N>*$xaJ%OL48;%3bIX-4pJJz zXnDG(w1JY~G(8T&>9S)$=WP%_h8%}Z6?DHlE4NHlr zln<(3v5A1-S(0YSd^Te!G&Lmnwl;M1&07*qoM6N<$ Eg3Qxq6#xJL literal 0 HcmV?d00001 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); +}