GLSL - использование пользовательского атрибута вывода вместо gl_Position
В настоящее время я изучаю OpenGL с шейдерами (3.3). Есть одна вещь, которую я не могу понять, хотя. Я читал, что использование встроенных переменных, таких как gl_Position и gl_FragCoords, не рекомендуется в OpenGL 3+, поэтому я хотел использовать свою собственную выходную переменную.
Итак, вместо этого:
#version 330\n
layout(location=0) in vec2 i_position;
out vec4 o_position;
void main()
{
gl_Position = vec4(i_position, 0.0, 1.0);
};
Я написал это:
#version 330\n
layout(location=0) in vec2 i_position;
out vec4 o_position;
void main()
{
o_position = vec4(i_position, 0.0, 1.0);
};
Шейдеры компилируются без проблем в обоих случаях, но второй код выдает только пустой экран. Нужно ли как-то указывать, какая переменная является выходной?