我正在使用OpenGL ES 2.0.0和GLSL ES 1.0.0进行开发。
目前我正在将一个正方形渲染到屏幕上,并尝试应用纹理。
在顶点和片段着色器中使用“varying”时遇到了问题,收到错误消息:
我已经阅读了文档,但仍然无法确定我的错误在哪里。
以下是代码。
顶点:
目前我正在将一个正方形渲染到屏幕上,并尝试应用纹理。
在顶点和片段着色器中使用“varying”时遇到了问题,收到错误消息:
- Failed to compile vertex shader -
0(3) : error C5060: out can't be used with non-varying tex_varying
in vec4 texture_coord ;
in vec4 position ;
out vec2 tex_varying ;
uniform mat4 translate ;
void main ( )
{
gl_Position = translate * position ;
tex_varying = texture_coord . xy ;
}
我已经阅读了文档,但仍然无法确定我的错误在哪里。
以下是代码。
顶点:
attribute vec4 position;
attribute vec4 texture_coord;
varying vec2 tex_varying;
uniform mat4 translate;
void main()
{
gl_Position = translate * position;
tex_varying = texture_coord.xy;
}
Fragment:
varying vec2 tex_varying;
uniform sampler2D texture;
void main()
{
gl_FragColor = texture2D(texture, tex_varying);
}
已解决: 这是一个晚回复,但我很久以前就解决了这个问题 - 以防其他人遇到此问题。原来“tex_varying”被Nvidia保留了!只需将tex_varying重命名即可解决问题。
干杯。