【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); }