Недавно я начал изучать opengl и до сих пор не очень-то знаю об этом. Я следовал учебник и написал эти два шейдеры:OpenGL Shader компилируется на рабочем столе, но не на Android
Vertex Shader:
#version 400
in vec4 s_vPosition;
in vec4 s_vColor;
out vec4 color;
void main() {
color = s_vColor;
gl_Position = s_vPosition;
}
Фрагмент Shader:
#version 400
in vec4 color;
out vec4 fColor;
void main() {
fColor = color;
}
Они компилировать и работать нормально на рабочем столе с OpenGL 3, но Дон Компиляция с OpenGL ES 2 на Android. Я попытался проверить журнал вывода шейдера, но он вернул пустую строку. Опять же, я очень новичок в этом, и моя ошибка, вероятно, очень проста, но любая помощь будет высоко оценена.
Нет, эти шейдеры не будут работать нормально с GL 3. Если они это сделают, то это будет осуществлено с помощью гениальной реализации. Эти шейдеры требуют GL 4.0 (хотя, по какой-то конкретной причине, они могли работать с 3.x, если была выбрана более разумная версия). Однако эти шейдеры в любом случае недействительны для ES2, который использует другой синтаксис (совместимый с GLSL 1.20), поэтому изменение версии там не поможет. – derhass
Так что я могу сделать, чтобы это сработало? –
Ничего, ответ Самгака не работает. –