GLSL Sandboxを使ってメタボールみたいなものを書いてみました。
全(x, y)座標に対して2点pos1とpos2との距離を計算して、その逆数を取って適当な値(size)をかけます。累乗の値で輪郭がぽわっとしたり、くっきりしたり。
http://glsl.heroku.com/e#7885.2
#ifdef GL_ES precision mediump float; #endif uniform float time; uniform vec2 mouse; uniform vec2 resolution; float w = resolution.x; float h = resolution.y; void main( void ) { float move = w / 10.0; vec2 pos1 = vec2(w * 0.5 + move * ( sin(time)), h * 0.5); vec2 pos2 = vec2(w * 0.5, h * 0.5); float dist1 = length(gl_FragCoord.xy - pos1); float dist2 = length(gl_FragCoord.xy - pos2); // 円のサイズ float size = 25.0; // distがsize以下であれば累乗根で潰す。 // この値が大きければsize以上離れている場所は0に近づくのでポワッとしなくなる float color = 0.0; color += pow(size / dist1, 2.0); color += pow(size / dist2, 2.0); gl_FragColor = vec4(vec3(color / 2.0, color / 4.0, color / 1.5), 1.0); }