WebGLで点を描画するとデフォルトでは正方形を描く。これを丸く描く方法をメモしておく。
if ( length(gl_PointCoord * 2.0 - 1.0) > 1.0 ) {
discard;
} else {
gl_FragColor = vec4( 1.0 );
}
gl_PointCoord * 2.0 - 1.0
この式で座標値が [0, 1]から[-1, 1]になるらしい。
length(gl_PointCoord * 2.0 - 1.0)
これで[0, 0]からの距離を調べる。
length(gl_PointCoord * 2.0 - 1.0) > 1.0
1.0より大きいか否かを調べる。
座標が[-1, 1]なので正方形の1辺の長さが2.0で、正方形に内接する円を考えるとその半径は1.0となり、その外側は破棄する、ということらしい。