" float fg = rv>=0 ? vv : 1.;\n"
" float bg = rv>=0 ? 1. : vv;\n"
" int len = points.length();\n"
+ " float sig2 = -log(255.0);\n"
" for( int i=0; i<len; ++i ) {\n"
" float dx = float(points[i].x) - gl_FragCoord.x;\n"
" float dy = float(points[i].y) - gl_FragCoord.y;\n"
" float dd = dx*dx + dy*dy;\n"
" if( dd >= rr ) continue;\n"
- " float d = dd*dr;\n"
- " float a = (1.-d)*fg + d*bg;\n"
+ " float ss = dd / rr;\n"
+ " float d = exp(ss * sig2);\n"
+ " float a = d*fg + (1.-d)*bg;\n"
" if( rv*(color.a-a) > 0 ) color = vec4(a);\n"
" }\n"
"}\n";