Sur cette page

Qt Quick Configuration graphique 3D requise

API graphiques, versions et langages de shading pris en charge

Qt Quick La fonctionnalité 3D prend en charge toutes les API graphiques et tous les langages de shading pris en charge par Qt Quick dans Qt 6.0. Dans certains cas, notamment avec OpenGL et OpenGL ES, la version requise peut être plus élevée pour Qt Quick 3D que pour Qt Quick.

  • OpenGL 3.0 ou version ultérieure ; OpenGL 3.3 ou version ultérieure est fortement recommandé
  • OpenGL ES 2.0 ou version ultérieure ; OpenGL ES 3.0 ou version ultérieure est fortement recommandé
  • Direct3D 11.1
  • Direct3D 12
  • Vulkan 1.0 ou version ultérieure
  • Metal 1.2 ou version ultérieure

Le pipeline de shaders repose sur l'approche standard de Qt 6 : le code de shader GLSL compatible Vulkan est compilé en SPIR-V, qui est ensuite traduit en code source GLSL, HLSL et MSL. Reportez-vous à la documentation du module Qt Shader Tools pour plus de détails.

Qt Quick 3D ne fonctionne directement avec aucune des API graphiques mentionnées ci-dessus. Il utilise plutôt les abstractions de l’interface matérielle de rendu Qt, à l’instar de Qt Quick.

Choix de l’API graphique

Comme Qt Quick 3D n’initialise pas le rendu ni une fenêtre de son propre chef, mais s’appuie plutôt sur QQuickWindow ou QQuickView ou sur le type QML Window, tout ce qui concerne la sélection de l’API graphique et s’applique au graphe de scèneQt Quick s’applique également à Qt Quick 3D. Il est possible de contrôler le comportement du graphe de scène en définissant des variables d’environnement spécifiques, comme indiqué ci-dessous :

Variable d’environnementValeurs possiblesDescription
QSG_RHI_BACKENDvulkan, metal, opengl, d3d11, d3d12Demande le backend RHI spécifique. Par défaut, l’API graphique ciblée est choisie en fonction de la plateforme, sauf si elle est remplacée par cette variable ou par les API C++ équivalentes. Les valeurs par défaut sont actuellement Direct3D 11 pour Windows, Metal pour macOS et OpenGL pour les autres plateformes.
QSG_RHI_DEBUG_LAYER1Le cas échéant (Vulkan, Direct3D), active les couches de débogage et/ou de validation de l’implémentation de l’API graphique, si elles sont disponibles.
QSG_INFO1Comme pour le chemin de rendu basé sur OpenGL, la définition de cette variable permet d’afficher des informations système lors de l’initialisation du graphe de scène d’ Qt Quick. Cela peut s’avérer très utile pour le dépannage.

Les applications souhaitant toujours s’exécuter avec une seule API graphique donnée peuvent en faire la demande via la variable d’environnement ` QSG_RHI_BACKEND `, ainsi qu’en C++. Par exemple, l’appel suivant, effectué au début de ` main()`, avant la construction de tout ` QQuickWindow`, force l’utilisation de Vulkan (et échouera dans le cas contraire).

QQuickWindow::setGraphicsApi(QSGRendererInterface::Vulkan);

Remarque : l’adaptation logicielle de Qt Quick n’est pas prise en charge pour le contenu 3D.

Spécificités d’OpenGL

Les applications 3D Qt Quick bien écrites doivent appeler QQuick3D::idealSurfaceFormat() dans leur fonction main() et utiliser l’ QSurfaceFormat renvoyée comme valeur par défaut :

QSurfaceFormat::setDefaultFormat(QQuick3D::idealSurfaceFormat());

L'appel de cette fonction n'a aucun effet lorsqu'une API graphique autre qu'OpenGL est utilisée, mais s'avère très avantageux lorsque l'API est OpenGL, car cela permet de créer un contexte OpenGL parfaitement adapté aux besoins d'Qt Quick 3D.

Prise en charge d’OpenGL ES 2.0

Qt Quick La 3D peut fonctionner sous OpenGL ES 2.0, mais avec un ensemble de fonctionnalités considérablement réduit. La liste suivante répertorie certaines des fonctionnalités qui ne seront pas disponibles ou qui ne fonctionneront pas correctement :

  • Éclairage basé sur des images, sondes de lumière, skybox
  • Mappage d’ombres
  • Occlusion ambiante dans l’espace écran
  • Multisampling
  • Certains effets de post-traitement
  • Matériaux personnalisés utilisant des shaders s'appuyant sur des fonctionnalités GLSL non présentes dans GLSL ES 100
  • Transparence indépendante de l'ordre

Remarque : la 3D« Qt Quick » nécessite OpenGL ES 3.0 / WebGL 2 sur la plateforme WebAssembly. OpenGL ES 2.0 / WebGL 1 n’est pas pris en charge.

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