Narumium

Blog

波紋

単純な円を書くコードで半径を abs(cos(time)) にすることで規則的に動くようにした。

[-1<cos(th)<1][-1.3*.7<cos(th)<.7*.7]にすることで 2 つの大きさが交互になる。

後は RGB 毎にタイミングをずらし(-f)て、太さも変えた(/2., /4.)。


細い線が先に動くように見えるので波紋のように見える(といいな)。


Twigl.app で見る


整形コード

precision highp float;
uniform vec2 resolution;
uniform float time;
vec2 p;
float c(float f){return pow(length(p)-abs((cos(time-f)-.3)*.7),2.);}
void main(){
	vec2 r=resolution;p=(gl_FragCoord.xy*2.-r)/r.y;
	gl_FragColor.xyz=1e-4/vec3(c(0.),c(.1)/2.,c(.3)/4.);
}