GLSL布尔值的大小是多少

What is the size of GLSL boolean

本文关键字:多少 布尔值 GLSL      更新时间:2023-10-16

有一个bool类型的着色器变量我想使用,但我找不到它的大小。这很重要,因为当设置顶点属性指针时,我指定了可以是的数据类型

GL_BYTE,
GL_UNSIGNED_BYTE,
GL_SHORT,
GL_UNSIGNED_SHORT,
GL_INT,
GL_UNSIGNED_INT,
GL_FLOAT, or
GL_DOUBLE

在c++中,通常bool的大小应该与4字节的int的大小相同,但我可以假设GLSL的大小相同吗?或者它只有1个字节?

这很重要,因为当设置顶点属性指针时,我指定了可以是的数据类型

这无关紧要,因为顶点属性不能为布尔值。根据GLSL 3.30规范:

顶点着色器输入只能是浮点、浮点向量、矩阵、有符号和无符号整数以及整数向量。顶点着色器输入也可以形成这些类型的数组,但不能形成结构。

布尔型不在名单上。

但是,如果您想知道GLSL bool在统一块方面的大小,它的大小与uint:32位相同。