我想编写一个简单的几何着色器,它只是在尝试修改内容之前通过顶点。
我的顶点着色器是
#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
,如果需要,那应该如何实现?