Qt Quick 3D Grafische Anforderungen
Unterstützte Grafik-APIs, Versionen und Schattierungssprachen
Qt Quick 3D unterstützt den Betrieb mit allen Grafik-APIs und Schattierungssprachen, die von Qt Quick in Qt 6.0 unterstützt werden. In einigen Fällen, insbesondere bei OpenGL und OpenGL ES, kann die Versionsanforderung für Qt Quick 3D höher sein als für Qt Quick.
- OpenGL 3.0 oder höher; OpenGL 3.3 oder höher wird dringend empfohlen
- OpenGL ES 2.0 oder höher; OpenGL ES 3.0 oder höher wird dringend empfohlen
- Direct3D 11.1
- Direct3D 12
- Vulkan 1.0 oder höher
- Metal 1.2 oder höher
Die Shader-Pipeline basiert auf dem Standardansatz von Qt 6: Vulkan-kompatibler GLSL-Shader-Code wird nach SPIR-V kompiliert, das dann in GLSL-, HLSL- und MSL-Quellcode übersetzt wird. Einzelheiten finden Sie in der Qt Shader Tools Modul-Dokumentation.
Qt Quick 3D arbeitet nicht direkt mit einer der oben genannten Grafik-APIs. Stattdessen verwendet es die Qt Rendering Hardware Interface Abstraktionen, ähnlich wie Qt Quick.
Auswahl der Grafik-API
Da Qt Quick 3D das Rendering oder ein Fenster nicht selbst initialisiert, sondern sich auf QQuickWindow oder QQuickView oder den Window QML-Typ verlässt, gilt alles, was sich auf die Auswahl der Grafik-API bezieht und für den Qt Quick Scene Graph gilt, auch für Qt Quick 3D. Es ist möglich, das Verhalten des Szenengraphen zu steuern, indem man bestimmte Umgebungsvariablen wie unten aufgeführt setzt:
Umgebungsvariable | Mögliche Werte | Beschreibung |
---|---|---|
QSG_RHI_BACKEND | vulkan , metal , opengl , d3d11 , d3d12 | Fordert das spezifische RHI-Backend an. Standardmäßig wird die angestrebte Grafik-API auf der Grundlage der Plattform ausgewählt, sofern sie nicht durch diese Variable oder die entsprechenden C++-APIs überschrieben wird. Die Standardwerte sind derzeit Direct3D 11 für Windows, Metal für macOS und OpenGL für andere Plattformen. |
QSG_RHI_DEBUG_LAYER | 1 | Aktiviert gegebenenfalls (Vulkan, Direct3D) die Debug- und/oder Validierungsschichten der Grafik-API-Implementierung, falls verfügbar. |
QSG_INFO | 1 | Wie beim OpenGL-basierten Rendering-Pfad ermöglicht die Einstellung die Ausgabe von Systeminformationen bei der Initialisierung des Qt Quick -Szenengraphs. Dies kann bei der Fehlersuche sehr nützlich sein. |
Anwendungen, die immer mit einer bestimmten Grafik-API laufen wollen, können dies über die Variable QSG_RHI_BACKEND
enivronment anfordern, ebenso wie mit C++. Zum Beispiel erzwingt der folgende Aufruf zu Beginn von main()
vor dem Aufbau von QQuickWindow die Verwendung von Vulkan (und schlägt andernfalls fehl).
QQuickWindow::setGraphicsApi(QSGRendererInterface::Vulkan);
Hinweis: Die Softwareanpassung von Qt Quick wird für 3D-Inhalte nicht unterstützt.
OpenGL-Besonderheiten
Von gut geschriebenen Qt Quick 3D Anwendungen wird erwartet, dass sie QQuick3D::idealSurfaceFormat() in ihrer main() Funktion aufrufen und die zurückgegebene QSurfaceFormat als Standard verwenden:
QSurfaceFormat::setDefaultFormat(QQuick3D::idealSurfaceFormat());
Dieser Aufruf hat keine Auswirkung, wenn eine andere Grafik-API als OpenGL verwendet wird, ist aber sehr vorteilhaft, wenn die API OpenGL ist, da er zur Erstellung eines OpenGL-Kontextes führt, der am besten für die Bedürfnisse von Qt Quick 3D geeignet ist.
OpenGL ES 2.0 Unterstützung
Qt Quick 3D unterstützt die Ausführung von OpenGL ES 2.0, allerdings mit einem deutlich eingeschränkten Funktionsumfang. Die folgende Liste enthält einige der Funktionen, die nicht verfügbar oder nicht funktionsfähig sein werden:
- Bildbasierte Beleuchtung, Light Probes, Skybox
- Schatten-Mapping
- Ambient Occlusion im Bildschirmraum
- Multisampling
- Bestimmte Nachbearbeitungseffekte
- Benutzerdefinierte Materialien, die Shader verwenden, die auf GLSL-Funktionen beruhen, die in GLSL ES 100 nicht vorhanden sind
Hinweis: Qt Quick 3D erfordert OpenGL ES 3.0 / WebGL 2 auf der WebAssembly-Plattform. OpenGL ES 2.0 / WebGL 1 wird nicht unterstützt.
© 2025 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.