GLSL ES 等同于 OpenGL GLSL 'out' 关键字?

GLSL ES equivalent to OpenGL GLSL 'out' keyword?

我有一个顶点着色器,它在 Windows 和 OpenGL 上运行良好。我想在支持 OpenGL ES2.0 的 iPad 上使用相同的着色器。

着色器编译失败:

Invalid storage qualifiers 'out' in global variable context

据我所知,'out' 关键字需要 GLSL 1.5,而 iPad 不支持。是否有与 'out' 等效的关键字可用于将颜色传递到我的片段着色器?

attribute vec4 vPosition;
attribute vec4 vColor;

uniform   mat4 MVP;

out vec4 pass_Color;

void main()
{
  gl_Position = MVP * vPosition;
  pass_Color = vColor;
}

我使用这个顶点着色器来创建渐变混合,所以我为三角形的每个顶点分配了一种颜色,然后片段着色器在每个顶点之间插入颜色。这就是为什么我没有将直接颜色直接传递到片段着色器中的原因。

已解决!在我使用的 GLSL ES 1.0 中,我需要使用 'varying' 而不是 'in' 和 'out'。这是工作着色器:

attribute vec4 vPosition;
attribute vec4 vColor;

uniform   mat4 MVP;

varying vec4 pass_Color;

void main()
{
  gl_Position = MVP * vPosition;
  pass_Color = vColor;
}