У меня есть вершинный шейдер, который отлично работает в Windows с OpenGL. Я хочу использовать тот же шейдер на iPad, который поддерживает OpenGL ES2.0.GLSL ES эквивалент ключевому слову OpenGL GLSL 'out'?
компиляции шейдера терпит неудачу с:
Invalid storage qualifiers 'out' in global variable context
Из того, что я прочитал, то «из» ключевое слово требуется 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;
}
Эта вершина шейдер используется мною для создания градиента смеси, поэтому я назначая цвет каждой вершину треугольника, а затем фрагмент шейдер интерполяции цвета между каждой вершиной. Вот почему я не передаю прямой цвет непосредственно в шейдер фрагмента.
Обратите внимание, что все несколько недавних iPads поддерживают ES 3.0, который гораздо более совместим с более новыми версиями настольных OpenGL. –
@RetoKoradi Хотелось бы, чтобы у меня был один :) – SparkyNZ