【GLSL】メタボール
See the Pen blobs by aadebdeb (@aadebdeb) on CodePen.
precision mediump float; uniform float u_time; uniform vec2 u_mouse; uniform vec2 u_resolution; float circle(in vec2 pos, in vec2 center, in float radius) { float d = distance(pos, center) + 0.001; return radius / d; } float random(float v) { return fract(sin(v) * 64453.2412); } void main(void) { float v = 0.0; for (int i = 0; i < 10; i++) { vec2 center = u_resolution / 2.0 + 200.0 * vec2(sin(u_time * random(float(i + 1)) * 0.003), sin(u_time * random(float(i * 2 + 1)) * 0.003)); // vec2 center = u_mouse; v += circle(gl_FragCoord.xy, center, 15.0); } gl_FragColor = vec4(vec3(v), 1.0); }
![f:id:aa_debdeb:20170331075848p:plain f:id:aa_debdeb:20170331075848p:plain](https://cdn-ak.f.st-hatena.com/images/fotolife/a/aa_debdeb/20170331/20170331075848.png)