GLSL“出局”4.2至1.2

时间:2012-04-10 05:27:41

标签: macos opengl glsl

我尝试将GLSL 4.2移植到1.2(因为我使用的是mac),但是,我不确定如何将out参数转换为1.2(因为它生成了一个错误)。

out vec3 vNormal;
out vec2 texcoord; 
out vec3 vPosition;

编译器错误如下。


Invalid qualifiers 'out' in global variable context
ERROR: 0:13: Invalid qualifiers 'out' in global variable context
ERROR: 0:14: Invalid qualifiers 'out' in global variable context
ERROR: 0:19: Use of undeclared identifier 'texcoord'
ERROR: 0:20: Use of undeclared identifier 'vNormal'
ERROR: 0:21: Use of undeclared identifier 'vPosition'

1 个答案:

答案 0 :(得分:5)

GLSL 1.30及以上out限定符表示着色器阶段输出。对于1.20及以下的含义取决于您正在讨论的哪个着色器阶段。

由于您使用的是texcoordvNormal等标识符,我猜您正在编写顶点着色器。然后,您应该使用的关键字是varying。与这些对应的片段着色器输入也应该是varying