Sur cette page

Qt Quick Exigences graphiques 3D

API graphiques, versions et langages d'ombrage pris en charge

Qt Quick 3D prend en charge le fonctionnement de toutes les API graphiques et de tous les langages d'ombrage pris en charge par Qt Quick dans Qt 6.0. Dans certains cas, avec OpenGL et OpenGL ES en particulier, la version requise peut être plus élevée pour Qt Quick 3D que pour Qt Quick.

  • OpenGL 3.0 ou supérieur ; OpenGL 3.3 ou supérieur est fortement recommandé
  • OpenGLES 2.0 ou supérieur ; OpenGL ES 3.0 ou supérieur est fortement recommandé
  • Direct3D 11.1
  • Direct3D 12
  • Vulkan 1.0 ou supérieur
  • Metal 1.2 ou supérieur

Le pipeline de shaders est basé sur l'approche standard de Qt 6 : le code de shaders GLSL compatible avec Vulkan est compilé dans 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 travaille pas directement avec l'une des API graphiques mentionnées ci-dessus. Elle utilise plutôt les abstractions de l'interface matérielle de rendu de Qt, de la même manière que Qt Quick.

Choix de l'API graphique

Comme Qt Quick 3D n'initialise pas le rendu ou une fenêtre de son propre chef, mais s'appuie plutôt sur QQuickWindow ou QQuickView ou le type QML Window, tout ce qui concerne la sélection de l'API graphique qui s'applique au graphique 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_BACKENDvulkanRHI, 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 cette variable ou les API C++ équivalentes l'emportent. Les valeurs par défaut sont actuellement Direct3D 11 pour Windows, Metal pour macOS, OpenGL ailleurs.
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, ce paramètre permet d'imprimer des informations système lors de l'initialisation du graphe de scène Qt Quick. Cela peut s'avérer très utile pour le dépannage.

Les applications qui souhaitent toujours fonctionner avec une seule API graphique donnée peuvent le demander via la variable d'enivronment QSG_RHI_BACKEND, ainsi qu'avec C++. Par exemple, l'appel suivant effectué au début de main(), avant de construire 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 sont censées appeler QQuick3D::idealSurfaceFormat() dans leur fonction main(), et utiliser le retour QSurfaceFormat comme valeur par défaut :

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

Cet appel n'a aucun effet lorsqu'une API graphique autre qu'OpenGL est utilisée, mais il est très bénéfique lorsque l'API est OpenGL, car il conduit à la création d'un contexte OpenGL qui convient le mieux aux besoins de Qt Quick 3D.

Prise en charge d'OpenGL ES 2.0

Qt Quick 3D supporte l'utilisation d'OpenGL ES 2.0, mais avec un ensemble de fonctionnalités très limité. La liste suivante contient certaines des fonctionnalités qui ne seront pas disponibles ou qui ne fonctionneront pas :

  • Eclairage basé sur l'image, sondes lumineuses, skybox
  • Cartographie des ombres
  • Occlusion ambiante dans l'espace de l'écran
  • Multiéchantillonnage
  • Certains effets de post-traitement
  • Matériaux personnalisés utilisant des shaders reposant sur des fonctionnalités GLSL non présentes dans GLSL ES 100
  • Transparence indépendante de l'ordre

Note : Qt Quick 3D nécessite OpenGL ES 3.0 / WebGL 2 sur la plateforme WebAssembly. OpenGL ES 2.0 / WebGL 1 n'est pas supporté.

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