私が理解しているように、gl_PointCoord
ポイントをレンダリングするときに、OpenGL 3 のフラグメント シェーダーで常に使用できます。しかし、一方、GLSL 1.20 仕様では、「ポイント スプライトが有効になっている」場合にのみ使用できるとされています (これは、 への呼び出しの後であると想定していますglEnable(GL_POINT_SPRITE)
)。
これらの 2 つのステートメントがどのように競合し、GL_POINT_SPRITE
OpenGL 3 で利用できないかを見て、gl_PointCoord
実際に利用できるのはいつですか? それはディレクティブに依存しますか#version
、または取得したGLプロファイルに依存しますか、それとも何ですか?
さらに、これは点の形状とどのように相互作用しますか? 私が理解している限りでは、MSAA がオフの場合は点が四角形としてレンダリングされ、MSAA がオンの場合は円としてレンダリングされます。が利用可能な場合GL_POINT_SPRITE
、有効にすると常に正方形としてレンダリングされるように見えますが、OpenGL 3 でこれを適切に制御するにはどうすればよいでしょうか? 四角くしたい場合、ポイントレンダリング呼び出しの周りでマルチサンプリングを単にオフにすることになっていますか?