OpenGL glPushName是什么意思?

时间:2009-09-18 22:22:25

标签: opengl

在OpenGL中执行此操作的含义是什么?

是否会重置所有名称?

2 个答案:

答案 0 :(得分:3)

http://www.opengl.org/sdk/docs/man/xhtml/glPushName.xml

它用于将新名称推送到名称堆栈(主要用于鼠标选择功能)。它不会清除名称,您可以使用glPopName返回先前设置的名称。

编辑:出于好奇,您使用的是什么?这是一个相当古老的API,我认为它在OpenGL 3.0中已被弃用。如果您尝试执行除鼠标选择之外的任何操作,那么您可能使用了错误的功能。

答案 1 :(得分:3)

当前渲染模式为GL_SELECT时,glPushName()会在名称堆栈上推送新的“名称”。这是一种粗略的API方案,用于将基元(三角形,四边形,三角形条)与用于选择的标识符相关联。正如Toji所说,这些调用和关联状态在OpenGL 3.x中已弃用,并且在不存在GL_ARB_compatibility扩展时不受支持。 它首先不是真正可用的,因为支持的名称的最小限制只有64.如果你需要“用光标选择对象”,你应该使用颜色选择。 颜色拾取是一种技术,您可以使用不同的颜色渲染不同的图元,然后再读取光标位置的颜色。这可以通过gluPickMatrix()和glReadPixels()轻松完成。确保仅渲染纯色,这意味着不会出现阴影,光照或纹理,并且会禁用抖动。使用glDisable(GL_DITHER)

禁用