OpenGL索引和位置对于制服和顶点属性是否相同?

时间:2015-05-04 17:08:39

标签: opengl opengl-es opengl-es-2.0 opengl-3 opengl-4

在OpenGL参考页面中,some函数被标记为使用统一位置,而other函数被标记为使用统一索引。这些都是一样的吗?

类似地,对于顶点属性,some函数被标记为使用顶点属性索引,而other函数被标记为使用顶点属性位置。这些都一样吗?

1 个答案:

答案 0 :(得分:4)

在第一种情况下,Uniform的 location 与用于glGetActiveUniform() index 不同。

对于glGetActiveUniform()情况,index只是介于0和从glGetProgram( GL_ACTIVE_UNIFORMS,...)减去1的值之间的值。此API允许您查询程序的任何资源,并且可以使用该方法迭代所有活动的制服。统一位置可能不会从0开始,并且可能根本不连续。

在第二个示例中,glGetAttribLocation()glEnableVertexAttribArray()都引用相同的索引。 GL有一组通用属性,通常由它们的索引引用,从0开始。然而,为了使事情更有趣,还有glGetActiveAttrib()glGetActiveUniform()类似。 one:这里,索引仅指活动属性列表(范围为0到从glGetProgram( GL_ACTIVE_ATTRIBUTES,...)得到的值减1,而到实际属性索引/位置。同样,此API允许您迭代所有存在(和活动)的属性。