GL_MAX_VERTEX_UNIFORM_COMPONENTS 和组件大小

GL_MAX_VERTEX_UNIFORM_COMPONENTS and component sizes

据我了解 glGet()GL_MAX_VERTEX_UNIFORM_COMPONENTS returns 可用统一组件的最大数量。

是否有指标,这些组件可以有多大(1 字节?4 字节?)?如果使用低精度组件,我可以处理超过 GL_MAX_VERTEX_UNIFORM_COMPONENTS 个组件吗?

My question now is: Is there an indicator, how large these components can be ( 1 byte? 4 bytes? )?

没有。分量只是向量的一个分量,与数据类型无关。

Can I address more than GL_MAX_VERTEX_UNIFORM_COMPONENTS components if the components are used with low precision?

没有

可能能够手动将多个数据元素打包到一个组件中,例如 4 个字节或 2 个短裤到一个 32 位整数(假设您的实现支持 32 位整数,则不需要 OpenGL ES 2.0 实现)。现代 GLSL 也有类似 unpackHalf2x16 的函数,因此您可以将两个半精度浮点数打包到一个 32 位 uint 组件中。

要考虑的另一个选项(替代或补充手动打包)是使用 Uniform Buffer Objects,它允许指定更大量的统一数据。