【发布时间】:2016-02-14 21:12:36
【问题描述】:
我正在尝试将布尔值发送到 OpenGL glsl 着色器。
目前我在着色器中有这个:
uniform bool foo;
我用它来设置它:
glUniform1i(glGetUniformLocation(shader, "foo"), true);
似乎没有glUniform1b,所以我将其设置为整数。这似乎工作正常。
这种方法有什么问题吗?它是可移植的,还是会在其他显卡/驱动程序上中断?我目前使用的是 OpenGL 4.3。
【问题讨论】:
-
据我所知,它与 4 字节 alingment 有关(布尔值是 1 字节,因此无论哪种方式,最后都会添加 3 个额外的填充字节),因此使用布尔值效率不高而且可能甚至在 OpenGL 中已弃用
-
@Amadeusz 它肯定不会被弃用。