【发布时间】:2012-01-09 22:09:55
【问题描述】:
我正在尝试编写一个简单的几何着色器,它在尝试修改内容之前只通过顶点。
我的顶点着色器是
#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,如果需要,如何完成?
【问题讨论】:
-
这不能回答我的问题。我的几何着色器与该页面上列出的完全一样,只是删除了 for 循环。但是它不起作用。什么都画不出来。此外,该页面上显示的顶点和片段着色器适用于 glsl 1.20。将所有这些链接在一起存在问题,我不明白,也找不到任何有关如何修复的信息。
标签: opengl glsl shader geometry-shader