precision mediump float; varying vec4 v_color; varying vec2 v_diffVector; varying float v_radius; varying float v_border; const vec4 transparent = vec4(0.0, 0.0, 0.0, 0.0); void main(void) { float dist = length(v_diffVector) - v_radius; float t = 0.0; if (dist > v_border) t = 1.0; else if (dist > 0.0) t = dist / v_border; gl_FragColor = mix(v_color, transparent, t); }