Opengl es 在OpenGL ES 2中,恒定顶点属性与统一顶点属性的含义是什么

Opengl es 在OpenGL ES 2中,恒定顶点属性与统一顶点属性的含义是什么,opengl-es,opengl-es-2.0,Opengl Es,Opengl Es 2.0,在为顶点着色器指定不随每个顶点变化的值时,我可以选择将其指定为统一或常量顶点属性(使用glVertexAttrib1f和friends) 我应该选择其中一个而不是另一个的原因是什么?简单地说,在任何给定的实现中,可用的顶点属性和一致性的数量是有限的,因此我需要明智地进行选择,还是也会影响性能 我环顾四周,发现了一些讨论,但没有具体回答我的问题: - 我绝不是OpenGL大师,所以如果我只是缺少一些基本的东西,我深表歉意。好吧,如果你传递一个顶点属性指针,顶点属性可以设置为每个顶点不同;只需更

在为顶点着色器指定不随每个顶点变化的值时,我可以选择将其指定为统一或常量顶点属性(使用glVertexAttrib1f和friends)

我应该选择其中一个而不是另一个的原因是什么?简单地说,在任何给定的实现中,可用的顶点属性和一致性的数量是有限的,因此我需要明智地进行选择,还是也会影响性能

我环顾四周,发现了一些讨论,但没有具体回答我的问题: -


我绝不是OpenGL大师,所以如果我只是缺少一些基本的东西,我深表歉意。

好吧,如果你传递一个顶点属性指针,顶点属性可以设置为每个顶点不同;只需更改向特定常规属性位置提供数据的方式,即可在常量值和逐顶点变化之间进行动态切换

制服永远不会因顶点而异,它们更稳定。一般来说,GLSL ES保证使用的顶点属性槽(8个,每个最多4个组件)远远少于统一组件(128个向量,每个组件4个)-大多数实现都超过了这些要求,但趋势是相同的(比属性更统一)

此外,每个计划州都有统一的制服。这些常量可以从GLSL程序的任何阶段访问。在OpenGL ES 2.0中,这意味着顶点/片段着色器,但在桌面GL中,这意味着顶点、片段、几何体、细分控制、细分计算