1

据我了解,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 中正确控制这一点?当一个人想要它们正方形时,是否应该简单地关闭点渲染调用周围的多重采样?

4

2 回答 2

1

gl_PointCoord对于核心OpenGL中的图元,始终是“可用的”(填充有意义的值) 。在兼容性配置文件或不提供 GLSL 130 的实现中,您必须启用.GL_POINTGL_POINT_SPRITE

于 2013-09-22T05:02:58.080 回答
0

只需在此处添加一个相关错误:gl_PointCoord无论您是否使用glEnable(0x8861). 驱动程序在兼容性配置文件中正常工作。

于 2016-12-15T05:56:04.700 回答