我在 MacBook Pro 上使用 GLFW 3 和 OpenGL 4 + GLSL 4。启动程序时出现以下语法错误:
ERROR: 0:5: 'varying' : syntax error syntax error
着色器代码:
#version 410
varying vec3 vertex;
void main() {
}
为什么我不允许使用可变变量?
为什么我不允许使用可变变量?
因为自 GLSL 1.30 以来它们已被更通用in
/可变的概念所取代。out
这变得很有必要,因为在 GL3 中引入了几何着色器,因此需要在着色器阶段之间使用更通用的通信方法。现在,您只需在一个着色器阶段声明变量,并拥有与您正在使用的下一个着色器阶段out
相同的声明。in
变化的概念仍然相同 - 光栅化器之前的最后一个着色器阶段(您使用)的输出应该匹配片段着色器(或光栅化器之后的第一个着色器阶段,但目前没有其他)的输入,并且数据将在默认情况下跨基元进行插值(如果您不将其声明为flat
,或使用无法插值的类型)。