在我的着色器中,我喜欢使用如下语法:layout (location = 0) in vec3 aPos;
这样我就可以在0
中使用索引glVertexAttribPointer
等,从而节省了glGetAttribLocation
调用的工作量。我想对uniform
值做同样的事情,但是如果我这样做
layout (location = 2) uniform float offset;
我的顶点着色器无法编译。有什么办法可以实现相同的行为,而不使用
glGetUniformLocation
?
最佳答案
OpenGL 4.3 or the ARB_explicit_uniform_location extension允许您使用该语法在着色器中指定统一位置。因此,您的着色器#version
需要为430,或者您需要激活着色器中的扩展名才能使用此语法。
关于c++ - 指没有glGetUniformLocation的制服,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60670744/