結構サンプル載っている。
http://www.demoscene.jp/?p=1147
#ifdef GL_ES precision mediump float; #endif uniform float time; uniform vec2 mouse; uniform vec2 resolution; float lengthN(vec2 v, float n){ vec2 tmp = pow(abs(v), vec2(n)); return pow(tmp.x + tmp.y, 1.0 / n); } float plazma(vec2 p){ vec2 p2 = mod(p * 8.0, 4.0) - 2.0; return sin(lengthN(p2, 4.0) * 16.0 + time); } void main( void ) { vec2 pos = (gl_FragCoord.xy*2.0 -resolution) / resolution.y; gl_FragColor = vec4(plazma(pos)); }
乱数を作成
fract()は実数の少数部を求める組み込み関数らしい。