Я пытаюсь написать простой геометрический шейдер, который просто проходит через вершины, прежде чем пытаться что-то изменить.
Мой вершинный шейдер -
#version 150 core
in vec3 inPosition;
in vec4 inColor;
out vec4 vertexColor;
void main() {
vertexColor = inColor;
gl_Position = vec4(inPosition, 1.0);
}
Мой геометрический шейдер -
#version 150 core
layout (triangles) in;
layout (triangle_strip, max_vertices=3) out;
void main() {
gl_Position = gl_in[0].gl_Position;
EmitVertex();
gl_Position = gl_in[1].gl_Position;
EmitVertex();
gl_Position = gl_in[2].gl_Position;
EmitVertex();
EndPrimitive();
}
А мой фрагментный шейдер -
#version 150 core
in vec4 vertexColor;
out vec4 fragColor;
void main() {
fragColor = vertexColor;
}
Без подключенного геометрического шейдера все работает нормально. Однако когда я подключаю геометрический шейдер, он перестает работать. Что мне не хватает? Требуется ли для моего шейдера геометрии ввод для vertexColor
из моего вершинного шейдера, и если да, то как это делается?