【问题标题】:Are OpenGL indices and locations the same thing for uniforms and vertex attributes?OpenGL 索引和位置对于制服和顶点属性是否相同?
【发布时间】:2015-05-04 17:08:38
【问题描述】:

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

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

【问题讨论】:

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


    【解决方案1】:

    在您的第一种情况下,Uniform 的 位置glGetActiveUniform() 使用的 index 不同。

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

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

    【讨论】:

      猜你喜欢
      • 2014-03-19
      • 2021-05-21
      • 2016-10-21
      • 2013-09-15
      • 1970-01-01
      • 2020-12-16
      • 2012-12-18
      • 1970-01-01
      • 2013-09-14
      相关资源
      最近更新 更多