我想弄清楚我可以在兼容OpenGL ES 2.0的设备上使用的变化矢量和制服的最大数量是多少。我想了解MAX_VARYING_VECTORS
的工作原理。因此,如果MAX_VARYING_VECTORS
为8,那是否意味着我可以存储8 * 4字节的数据以进行更改,或者这是否意味着我只能定义8种变化而不管数据类型如何?
答案 0 :(得分:2)
MAX_VARYING_VECTORS
以4个成员的浮点向量(vec4
)为单位进行测量。因此,在最小保证值为8的情况下,您可以进行8种类型vec4
的变换。
关于其他类型如何适应这个可用空间的规则相当复杂。对于MAX_VARYING_VECTORS
为8的示例,整个事物被视为包含8行和4列的2D数组。此数组中的空间按特定顺序(主要从最大到最小)分配,并且规则取决于变量的大小以及数组中仍可用的空白空间的大小/位置。
准确的规则填写了GLSL ES 1.00规范文档中的大约2.5页。它们位于第111-113页。复制整件事情并没有多大意义,我担心我无法将其转化为更简单的东西,同时仍保持准确。