ドット
最初は落雷のようなエフェクトを作っていた気がする。どうしてこうなった。
sin, cos
の単純な組み合わせでこれくらいの模様が作れるのが面白い。
if(abs(cos(p.x))+abs(cos(p.y))<1.75)c=vec3(1);
とかすると分かりやすいですが定期的に円を作るのは意外と簡単です。
久々に #つぶやきGLSL
— Narumium (@Nr_Narumium) September 9, 2020
void main(){
vec2 p=(gl_FragCoord.xy*2.-r)/r.y;
vec3 c=vec3(0);
float r1=abs(sin(p.y*50.))*.5,r2=abs(cos(p.x*50.))*.5;
if(abs(p.x)+r1+r2<abs(cos(t)))c+=vec3(1,1,0);
if(abs(p.y)+r2+r1<abs(sin(t)))c+=vec3(0,0,1);
gl_FragColor=vec4(c,1);
} pic.twitter.com/bUT7jiCQFp
整形コード
void main(){
vec2 p=(gl_FragCoord.xy*2.-r)/r.y;
vec3 c=vec3(0);
float r1=abs(sin(p.y*50.))*.5,r2=abs(cos(p.x*50.))*.5;
if(abs(p.x)+r1+r2<abs(cos(t)))c+=vec3(1,1,0);
if(abs(p.y)+r2+r1<abs(sin(t)))c+=vec3(0,0,1);
gl_FragColor=vec4(c,1);
}