我想使用的着色器变量有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个字节?
答案 0 :(得分:12)
这很重要,因为在设置顶点属性指针时,我指定了可以
的数据类型
这是无关紧要的,因为顶点属性不能是布尔值。从GLSL 3.30规范:
顶点着色器输入只能是浮点,浮点矢量,矩阵,有符号和无符号整数以及整数矢量。顶点着色器输入也可以形成这些类型的数组,但不能形成结构。
布尔人不在该名单上。
但是,如果您想知道GLSL bool
的大小是uniform blocks,它的大小与uint
相同:32位。