円々
当初は円状に円を配置して回転させるだけだった。
透過色にして重ねつつ、楕円回転させることで変形もしてないのに立体感が出た(気がする
今見て思ったけど step(length(p+vec2(cos(2.*t+i*.5236)*.5,sin(t+i*.5236)*.5)),.5)
にすれば 3 文字減らせる。
.5236
は 2π/12
です。
void main(void){vec2 p=(gl_FragCoord.xy*2.-r)/r.y;vec3 c=vec3(0);for(float i=0.;i<12.;i++){float v=.4*step(length(p+vec2(cos(2.*t+i*.5236)*.5,sin(t+i*.5236)*.5))-0.5,.0);c.r+=v*mod(i,6.)/6.;c.g+=v*mod(i+4.,6.)/6.;c.b+=v*mod(i+8.,6.)/6.;}gl_FragColor=vec4(c, 1.0);} #つぶやきGLSL pic.twitter.com/vjKlkmv1hT
— Narumium (@Nr_Narumium) May 14, 2020
整形コード
void main(void){
vec2 p=(gl_FragCoord.xy*2.-r)/r.y;
vec3 c=vec3(0);
for(float i=0.;i<12.;i++){
float v=.4*step(length(p+vec2(cos(2.*t+i*.5236)*.5,sin(t+i*.5236)*.5))-.5,.0);
c.r+=v*mod(i,6.)/6.;
c.g+=v*mod(i+4.,6.)/6.;
c.b+=v*mod(i+8.,6.)/6.;
}
gl_FragColor=vec4(c,1.);
}