波形 2
波形 をもう少し模様にした。
下の途中コードのように、縦方向の三角関数で赤・青と中央で横方向に動く緑がベース。
#つぶやきGLSL #define M(n) mod(l.x,3.)==n
— Narumium (@Nr_Narumium) November 4, 2020
void main(){
vec2 p=(gl_FragCoord.xy*2.-r)/r,l=floor(1e2*p);p=l/1e2;vec3 d;
float s=sin(2.*p.x+t*2.),c=cos(4.*p.y+t),x=p.x*1.5*s;
if(c>x&&M(0.))d.r+=1.;if(c<x&&M(2.))d.b+=1.;
if(s>p.y*1.5*c&&M(1.))d.g+=1.;
gl_FragColor.rgb=d;
} pic.twitter.com/8ncSMX9l7f
整形コード
#define M(n) mod(l.x,3.)==n
void main(){
vec2 p=(gl_FragCoord.xy*2.-r)/r,l=floor(50.*p);
p=l/50.;
vec3 d;
float s=sin(2.*p.x+t*2.),c=cos(4.*p.y+t),x=p.x*1.5*s;
if(c>x&&M(0.))d.r+=1.;
if(c<x&&M(2.))d.b+=1.;
if(s>p.y*1.5*c&&M(1.))d.g+=1.;
gl_FragColor.rgb=d;
}
途中コード
#define M(n)mod(l.x,3.)==n
void main(){
vec2 p=(gl_FragCoord.xy*2.-r)/r,l=floor(50.*p);p=l/50.;
vec3 d;
float k=2.*p.x+t,s=sin(k),c=cos(2.*p.y+t);
if(c>p.x*1.5&&M(0.))d.r+=1.;
if(s>p.y*1.5&&M(1.))d.g+=1.;
if(c<p.x*1.5&&M(2.))d.b+=1.;
gl_FragColor.rgb=d;
}