предопределенная переменная gl_FragColor
больше не существует в GLSL ES 3.00. Вам нужно определить свою собственную переменную out
для вывода шейдера фрагмента. Вы можете использовать любое имя, которое вы хотите, например:
out vec4 FragColor;
void main() {
...
FragColor = ...;
}
Это следует за основным профилем полного OpenGL. Причина того, что не имеет предварительно определенного вывода шейдера фрагмента, заключается в том, что он недостаточно масштабируется для нескольких целей рендеринга и для целей рендеринга, которым нужны типы, отличные от векторов float.