4
此時我有一個工作頂點和片段着色器。如果我完全刪除了幾何着色器,那麼我將在每個頂點獲得具有顏色的期望立方體。但是添加了幾何着色器後,幾乎不顯示幾何圖形。glsl通過幾何着色器問題
頂點着色器:
#version 330 core
layout(location = 0) in vec3 vertexPosition_modelspace;
layout(location = 1) in vec3 vertexColor;
out VertexData
{
vec3 color;
} vertex;
uniform mat4 MVP;
void main(){
gl_Position = MVP * vec4(vertexPosition_modelspace,1);
vertex.color = vertexColor;
}
幾何着色器:
#version 330
precision highp float;
in VertexData
{
vec3 color;
} vertex[];
out vec3 fragmentColor;
layout (triangles) in;
layout (triangle_strip) out;
layout (max_vertices = 3) out;
void main(void)
{
for (int i = 0; i > gl_in.length(); i++) {
gl_Position = gl_in[i].gl_Position;
fragmentColor = vertex[i].color;
EmitVertex();
}
EndPrimitive();
}
片段着色器:
#version 330 core
in vec3 fragmentColor;
out vec3 color;
void main(){
color = fragmentColor;
}
我的顯卡支持OpenGL 3.3,從我可以告訴。正如我所說。它沒有幾何着色器。作爲數據,我傳入兩個GLfloat數組,每個數組都是頂點或頂點顏色。
當然,通常的問題是:着色器編譯和程序鏈接,如果不是信息日誌說什麼? –