答案 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允许您迭代所有存在(和活动)的属性。