GLES 2.0 的最大可变向量和浮点数

Max Varying Vectors and Floats for GLES 2.0

我想弄清楚我可以在兼容 OpenGL ES 2.0 的设备上使用的不同矢量和制服的最大数量是多少。我想了解 MAX_VARYING_VECTORS 是如何工作的。所以如果 MAX_VARYING_VECTORS 是 8,这是否意味着我可以为 varyings 存储 8 * 4 字节的数据,或者这是否意味着我只能定义 8 个 varyings 而不管数据类型?

MAX_VARYING_VECTORS 以 4 元浮点向量 (vec4) 为单位进行测量。因此,最小保证值为 8,您可以有 8 个类型 vec4.

有关其他类型如何准确适合此可用 space 的规则相当复杂。对于 MAX_VARYING_VECTORS 为 8 的示例,整个事物被视为 8 行 4 列的二维数组。此数组中的 Space 以特定顺序(通常从最大到最小)分配给 varyings,并且规则取决于变量的大小和空 space 的 size/location数组中仍然可用。

确切的规则在 GLSL ES 1.00 规范文档中占了大约 2.5 页。它们位于第 111-113 页。复制整个东西没有多大意义,恐怕我不能把它变成更简单的东西,同时仍然保持准确。