Frage

Ich habe gerade mit OpenGL in Verbindung mit qt begonnen.Ich versuche, einen Geometrie-Shader zu verwenden, um die Linienbreite zu ändern, aber selbst ein einfacher Durchlaufgeometrie-Shader führt zu einem leeren Bildschirm.

Hier ist (ein Auszug von) mein Code:

generasacodicetagpre.

vertex shader:

generasacodicetagpre.

Geometrie Shader:

generasacodicetagpre.

Fragment Shader:

generasacodicetagpre.

Wenn ich line_shader.addShaderFromSourceFile(QGLShader::Geometry, ":/shaders/lines.g.glsl"); aus dem Code entferne, funktioniert alles wie erwartet.

Was mache ich hier falsch?

edit: Ich verwende OS X 10.9, Qt 5.2.1.

War es hilfreich?

Lösung

Sind Geometrie-Shader, die von einer Erweiterung unterstützt werden, die nicht auf Ihrer Plattform geladen / aufgelöst wird?Ich glaube, dass sie optional sind, aber qt versucht sie zu laden ( source ).

Vielleicht haben sie in Ihrer Umsetzung etwas anderes benannt.Wenn Sie sie manuell auflösen müssen diesen KDAB-Artikel kann helfen.Es gibt den Kodex, um die Erweiterungen aufzulisten. Qt weiß:

generasacodicetagpre.

Es könnte sein, dass die Erweiterung etwas anderes als das Qt bezeichnet wird.

auch offensichtlich, aber ich denke, Sie haben ein Shader-Tool auf Ihrer Plattform und konnten diesen Shader ausführen?Ich benutze MacOSX für die meiste Meinung von meiner Entwicklung und leider unterstützt das Tool "OpenGL Shader Builder" nur Fragment- und Vertex-Shader.Ich bin nicht sicher, welche Werkzeuge Geometrie-Shader unterstützen, aber ich denke, Sie sind an diesem Shader angekommen und haben es irgendwie überprüft.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top