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,它允许指定更大量的统一数据。
据我了解 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,它允许指定更大量的统一数据。