我正在尝试编写一个简单的几何着色器,它在尝试修改内容之前只通过顶点。
我的顶点着色器是
#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
来自我的顶点着色器的输入,如果需要,那是如何完成的?