私は、要素を修正しようとする前に、頂点を通過するだけの単純なジオメトリシェーダを作成しようとしています。GLSL 1.5シンプルなジオメトリシェーダ
マイ頂点シェーダがある
#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
の入力を必要としますか?
http://ja.wikipedia.org/wiki/GLSL#A_sample_trivial_GLSL_geometry_shader? – n0rd
それは私の質問に答えません。ジオメトリシェーダは、forループを除いて、そのページにリストされているものとまったく同じです。しかし、それは動作しません。何も描かれません。また、そのページに表示される頂点シェーダとフラグメントシェーダは、glsl 1用です。20私が理解していないこれらの情報を結びつけるのに問題があります。また、修正方法に関する情報を見つけることはできません。 – user1139069