在 OpenGL 参考页中,some https://www.opengl.org/sdk/docs/man4/html/glUniform.xhtml函数被标记为使用统一位置,而other https://www.opengl.org/sdk/docs/man4/html/glGetActiveUniform.xhtml函数被标记为使用统一索引。这些是同一件事吗?
类似地,对于顶点属性,some https://www.opengl.org/sdk/docs/man4/html/glEnableVertexAttribArray.xhtml函数被标记为使用顶点属性索引,而other https://www.opengl.org/sdk/docs/man4/html/glGetAttribLocation.xhtml函数被标记为使用顶点属性位置。这些是一样的吗?
在你的第一种情况下,location制服不同于index用于glGetActiveUniform()
.
For glGetActiveUniform()
在这种情况下,索引只是 0 和您获得的值之间的值glGetProgram( GL_ACTIVE_UNIFORMS,...)
减一。该 API 允许您查询程序的任何资源,并且您可以使用该方法迭代所有活动的制服。统一位置可能不从 0 开始,并且可能根本不连续。
在你的第二个例子中,glGetAttribLocation()
and glEnableVertexAttribArray()
两者都引用相同的索引。 GL 有一组通用属性,通常通过索引引用,从 0 开始。但是,为了让事情变得更有趣,还有glGetActiveAttrib() https://www.opengl.org/sdk/docs/man4/html/glGetActiveAttrib.xhtml这类似于glGetActiveUniform()
一:这里,索引仅指活动属性列表(范围从 0 到您从glGetProgram( GL_ACTIVE_ATTRIBUTES,...)
减一,并且not到实际的属性索引/位置。同样,此 API 允许您迭代所有存在(且活动)的属性。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)