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);
};

Шейдеры компилируются без проблем в обоих случаях, но второй код выдает только пустой экран. Нужно ли как-то указывать, какая переменная является выходной?

Ответы на вопрос(2)

Ваш ответ на вопрос