我一直在學習OpenGL(實際上是OpenTK)一個月左右,我開始玩幾何着色器。我原本寫了一個更復雜的着色器,但它並不起作用,所以我已將所有東西都剝離了一個簡單的直通着色器,但仍然無法使用。GLSL直通幾何着色器
頂點着色器:
#version 420 core
layout (location = 0) in vec3 position;
uniform mat4 transform;
void main()
{
gl_Position = transform * vec4(position, 1);
}
幾何着色器:
#version 420 core
layout (triangles) in;
layout (triangle_strip) out;
void main()
{
int i;
for(i = 0; i < gl_in.length(); i++)
{
gl_Position = gl_in[i].gl_Position;
EmitVertex();
}
EndPrimitive();
}
片段着色器:
#version 420 core
layout (binding = 0) uniform sampler2D diffuse;
layout(location = 0) out vec4 color;
void main()
{
color = vec4(1, 1, 1, 1);
}
應該吸取在窗口右下角的白色正方形,沒有幾何着色器,它確實,這就是我wo呃期望。使用幾何着色器,它不渲染任何東西。信息日誌顯示一切編譯和鏈接正常。
我錯過了什麼?
看不到任何明顯的錯誤,但是您是否檢查了着色器編譯和鏈接錯誤? – Rabbid76
是的,我在每次編譯和鏈接後都檢查過;沒有錯誤。 –
嘗試'佈局(triangle_strip,max_vertices = 3);' – Rabbid76