Я занимаюсь разработкой с использованием OpenGL ES 2.0.0 и GLSL ES 1.0.0.
В настоящее время я отрисовываю квадрат на экран, и сейчас пытаюсь
применить текстуру.
У меня проблемы с использованием " varing " в вершинных и фрагментных шейдерах,
получение сообщения об ошибке:
- 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 ;
}
Я прочитал документацию и не могу понять, что я делаю неправильно.
Вот код.
Vertex:
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;
}
Фрагмент:
varying vec2 tex_varying;
uniform sampler2D texture;
void main()
{
gl_FragColor = texture2D(texture, tex_varying);
}
ПОСТАНОВИЛИ:
Это поздний ответ, но я решил эту проблему очень давно - на тот случай, если кто-нибудь еще наткнется на эту проблему. Оказывается, "tex_varying" зарезервировано Nvidia! Простое переименование tex_varying решило проблему.
Приветствие.