ドット2
パターン化の練習。
fract()
とfloor() (= p-fract())
で領域分割。
mod()
で RGB の配置と動くタイミングをずらしている。
またサイズを0.5
より少し大きくすることで、領域分割と合わさって密着しているような効果にした。
precision highp float;uniform vec2 resolution;uniform float time;void main(){vec2 r=resolution,p=5.*(gl_FragCoord.xy*2.-r)/r.y,f=fract(p),l=p-f;float m=mod(l.x+l.y,3.),s=step(length(vec2(.5)-f),.55*abs(cos(time+m/2.)));gl_FragColor.rgb=s*.1/vec3(m,(m-1.),(m-2.));} #つぶやきGLSL pic.twitter.com/De1HbS3WAD
— Narumium (@Nr_Narumium) October 28, 2020
整形コード
precision highp float;
uniform vec2 resolution;
uniform float time;
void main(){
vec2 r=resolution,p=5.*(gl_FragCoord.xy*2.-r)/r.y,f=fract(p),l=p-f;
float m=mod(l.x+l.y,3.),s=step(length(vec2(.5)-f),.55*abs(cos(time+m/2.)));
gl_FragColor.rgb=s*.1/vec3(m,(m-1.),(m-2.));
}