OpenGL Geometry Shader Mac OS X
-
10-10-2019 - |
Frage
Ich versuche, einen einfachen Durchlauf durch Geometrie-Shader zur Arbeit unter Mac OS X 10.6 zu erhalten. Der Code kompiliert und Link ohne Problem, aber aus irgendeinem Grunde keine Geometrie auf den Bildschirm gezeichnet wird. Hier ist mein Shader-Code:
#version 120
#extension GL_EXT_geometry_shader4: enable
void main()
{
gl_Position = gl_PositionIn[0];
EmitVertex();
EndPrimitive();
}
Wenn jemand helfen kann ich es schätzen würde.
Lösung
So wie sich herausstellt, war das Problem nicht in der Shader-Code überhaupt. Offenbar, wenn Version 120 in einem Geometrie-Shader verwendet, haben Sie die Ein- und Ausgangstypen wie folgt festgelegt:
glProgramParameteriEXT(shaderProgramID, GL_GEOMETRY_OUTPUT_TYPE_EXT, GL_POINTS);
glProgramParameteriEXT(shaderProgramID, GL_GEOMETRY_VERTICES_OUT_EXT, GL_POINTS);
Danach alles geklappt perfekt.
Andere Tipps
Ein Geometrie-Shader-Werke auf ganze Primitiven. Mit freundlichen sieht aus wie es nur für Punkte sein würde. Wenn Sie nicht in Punkte sind vorbei müssen Sie alle gl_VerticesIn
(count) Eckpunkte verarbeiten.