GLSL布尔值的大小是多少

Rav*_*ven 7 c++ opengl types glsl

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

GL_BYTE,
GL_UNSIGNED_BYTE,
GL_SHORT,
GL_UNSIGNED_SHORT,
GL_INT,
GL_UNSIGNED_INT,
GL_FLOAT, or
GL_DOUBLE
Run Code Online (Sandbox Code Playgroud)

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

Nic*_*las 12

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

这是无关紧要的,因为顶点属性不能是布尔值.从GLSL 3.30规范:

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

布尔人不在这个名单上.

但是,如果您想知道GLSL bool统一块方面的大小,它的大小与uint32位相同.