Auf dieser Seite

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 “.

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:

UmgebungsvariableMögliche WerteBeschreibung
QSG_RHI_BACKENDvulkan, metal, opengl, d3d11, d3d12Fordert 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_LAYER1Soweit zutreffend (Vulkan, Direct3D), werden die Debug- und/oder Validierungsschichten der Grafik-API-Implementierung aktiviert, sofern verfügbar.
QSG_INFO1Ä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.