【发布时间】:2021-07-07 07:10:46
【问题描述】:
我正在尝试创建一个简单的直通“几何着色器”,但由于某种原因它没有链接。调试信息说它的编译很好。我不知道我在这个中做错了什么?它不是我之前链接和使用几何着色器的驱动程序或操作系统,它们运行良好。
顶点着色器代码:
#version 450
in vec3 position;
uniform mat4 MVP;
out vec4 color;
void main()
{
gl_Position = MVP * vec4(position, 1.0);
color = vec4(0.5, 0.5, 0.0, 1.0);
}
片段着色器代码:
#version 450
in vec4 fColor;
out vec4 fcolor;
void main() {
fcolor = fColor;
}
几何着色器代码:
#version 450
layout(lines) in;
layout(triangle_strip, max_vertices = 4) out;
in vec4 color;
out vec4 fColor;
void main()
{
fColor = color;
for(int i = 0; i <= gl_in.length(); i++)
{
gl_Position = gl_in[i].gl_Position;
EmitVertex();
}
EndPrimitive();
}
调试输出:
在 Compile Shader from file: ../Curve.vert compile result:: 1 Shader 编译并附加成功:在从文件编译着色器中: ../Curve.geom compile result:: 1 Shader 编译附加成功: 在 Compile Shader from file: ../Curve.frag compile result:: 1 Shader 编译并附加成功:Linking..,找到程序句柄:1 GL 渲染器:GeForce GTX 1660 Ti/PCIe/SSE2 GL 供应商: NVIDIA Corporation GL 版本:4.6.0 NVIDIA 461.40 GL 版本号:4.6 GLSL 版本:4.60 NVIDIA --------------- 调试消息(131216):程序/着色器状态信息:GLSL 程序 1 无法链接来源:API 类型:其他严重性:低
曲线着色器程序未链接曲线着色器程序未验证使用 不成功,退货? m_linked 状态:false 程序句柄:1 曲线着色器程序句柄:1
【问题讨论】: