我尝试将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'
答案 0 :(得分:5)
GLSL 1.30及以上out
限定符表示着色器阶段输出。对于1.20及以下的含义取决于您正在讨论的哪个着色器阶段。
由于您使用的是texcoord
和vNormal
等标识符,我猜您正在编写顶点着色器。然后,您应该使用的关键字是varying
。与这些对应的片段着色器输入也应该是varying
。