1

我正在尝试将 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'
4

1 回答 1

6

GLSL 1.30 及以上out限定符表示着色器阶段输出。这对 1.20 及以下版本意味着什么取决于您正在谈论的着色器阶段。

由于您使用的是 and 之类的标识符texcoordvNormal我猜您正在编写一个顶点着色器。那么您应该使用的关键字是varying. 与这些对应的片段着色器输入也应该是varying

于 2012-04-10T06:16:40.277 回答