Qt Quick 3D Grafikanforderungen
Unterstützte Grafik-APIs, Versionen und Shading-Sprachen
Qt Quick 3D unterstützt den Betrieb mit allen Grafik-APIs und Shading-Sprachen, 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 zu SPIR-V kompiliert, das anschließend in GLSL-, HLSL- und MSL-Quellcode übersetzt wird. Weitere Informationen finden Sie in der Dokumentation zum Qt -Modul „ Shader Tools “.
Qt Quick 3D arbeitet nicht direkt mit einer der oben genannten Grafik-APIs zusammen. Stattdessen nutzt es die Abstraktionen der Qt-Rendering-Hardware-Schnittstelle, ähnlich wie „ Qt Quick “.
Auswahl der Grafik-API
Da „ Qt Quick 3D “ das Rendering oder ein Fenster nicht selbst initialisiert, sondern auf „ QQuickWindow “, „ QQuickView “ oder den QML-Typ „ Window “ zurückgreift, gelten alle Aspekte der Grafik-API-Auswahl, die für den „Qt Quick “-Szenenbaum gelten, auch für „ Qt Quick 3D “. Es ist möglich, das Verhalten des Szenenbaums durch das Setzen bestimmter Umgebungsvariablen zu steuern, wie unten aufgeführt:
| Umgebungsvariable | Mögliche Werte | Beschreibung |
|---|---|---|
QSG_RHI_BACKEND | vulkan, metal, opengl, d3d11, d3d12 | Fordert das spezifische RHI-Backend an. Standardmäßig wird die Ziel-Grafik-API basierend auf der Plattform ausgewählt, sofern dies 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 alle anderen Plattformen. |
QSG_RHI_DEBUG_LAYER | 1 | Soweit zutreffend (Vulkan, Direct3D), werden die Debug- und/oder Validierungsschichten der Grafik-API-Implementierung aktiviert, sofern verfügbar. |
QSG_INFO | 1 | Ähnlich wie beim OpenGL-basierten Rendering-Pfad bewirkt die Einstellung dieser Variablen, dass bei der Initialisierung des „ Qt Quick “-Szenengraphen Systeminformationen ausgegeben werden. Dies kann bei der Fehlerbehebung sehr hilfreich sein. |
Anwendungen, die stets mit einer bestimmten Grafik-API ausgeführt werden sollen, können dies über die Umgebungsvariable „ QSG_RHI_BACKEND “ sowie über C++ anfordern. Beispielsweise erzwingt der folgende Aufruf, der frühzeitig in ` main()` vor dem Erstellen von ` QQuickWindow` erfolgt, die Verwendung von Vulkan (und schlägt andernfalls fehl).
QQuickWindow::setGraphicsApi(QSGRendererInterface::Vulkan);Hinweis: Die Software-Anpassung von „ Qt Quick “ wird für 3D-Inhalte nicht unterstützt.
OpenGL-Spezifikationen
Von gut geschriebenen „ Qt Quick 3D “-Anwendungen wird erwartet, dass sie in ihrer `main()`-Funktion ` QQuick3D::idealSurfaceFormat()` aufrufen und den zurückgegebenen ` QSurfaceFormat ` als Standard verwenden:
QSurfaceFormat::setDefaultFormat(QQuick3D::idealSurfaceFormat());Der Aufruf dieser Funktion hat keine Auswirkung, wenn eine andere Grafik-API als OpenGL verwendet wird, ist jedoch bei Verwendung von OpenGL äußerst vorteilhaft, da dadurch ein OpenGL-Kontext erstellt wird, der optimal auf die Anforderungen von „ Qt Quick 3D “ zugeschnitten ist.
Unterstützung für OpenGL ES 2.0
Qt Quick 3D unterstützt die Ausführung unter OpenGL ES 2.0, allerdings mit einem deutlich eingeschränkten Funktionsumfang. Die folgende Liste enthält einige der Funktionen, die nicht verfügbar sind oder nicht ordnungsgemäß funktionieren:
- Bildbasierte Beleuchtung, Lichtproben, Skybox
- Schattenabbildung
- Screen-Space-Ambient-Occlusion
- Multisampling
- Bestimmte Nachbearbeitungseffekte
- Benutzerdefinierte Materialien, die Shader verwenden, die auf GLSL-Funktionen basieren, die in GLSL ES 100 nicht vorhanden sind
- Reihenfolgeunabhängige Transparenz
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.
© 2026 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.