据我了解,gl_PointCoord
在渲染点时始终在 OpenGL 3 的片段着色器中可用;但是,另一方面,GLSL 1.20 规范说它仅在“启用点精灵”时可用(我假设这意味着在调用 之后glEnable(GL_POINT_SPRITE)
)。
看看这两个语句如何冲突,并且GL_POINT_SPRITE
在 OpenGL 3 中不可用,什么时候gl_PointCoord
实际可用?它取决于#version
指令,还是取决于获得的 GL 配置文件,还是什么?
此外,这如何与点形状相互作用?据我了解,点在 MSAA 关闭时呈现为正方形,在 MSAA 开启时呈现为圆形。当GL_POINT_SPRITE
可用时,它们似乎总是在启用时呈现为正方形,非常简单,但是如何在 OpenGL 3 中正确控制这一点?当一个人想要它们正方形时,是否应该简单地关闭点渲染调用周围的多重采样?