Modifications apportées à Qt Quick 3D
Qt 6 est le fruit d’un effort délibéré visant à rendre le framework plus efficace et plus facile à utiliser.
Nous nous efforçons de maintenir la compatibilité binaire et source pour toutes les API publiques à chaque version. Cependant, certaines modifications étaient inévitables afin d’améliorer le framework Qt. Certaines parties de l’API Qt Quick 3D ont été considérablement modifiées.
Dans cette rubrique, nous résumons ces modifications apportées à l’ Qt Quick 3D et fournissons des conseils pour les prendre en charge.
RHI
À partir de Qt 6.0, l’implémentation par défaut d’ Qt Quick effectue toujours le rendu via une couche d’abstraction graphique, l’interface matérielle de rendu Qt (RHI), fournie par le module QtGui. Cela signifie que, contrairement à Qt 5, aucun appel OpenGL direct n’est effectué par le graphe de scène. Au lieu de cela, il enregistre les commandes de ressources et de dessin à l’aide des API RHI, qui traduisent ensuite le flux de commandes en appels OpenGL, Vulkan, Metal ou Direct 3D. La gestion des shaders est également unifiée : il suffit d’écrire le code de shader une seule fois, de le compiler en SPIR-V, puis de le traduire dans le langage approprié pour les différentes API graphiques.
Pour l’ Qt Quick 3D, le changement le plus important dans Qt 6.0 est la migration vers l’interface matérielle de rendu commune (RHI), qui permet à l’ Qt Quick 3D de fonctionner sur Direct3D, Metal et Vulkan en plus d’OpenGL et d’OpenGL ES.
Qt Quick Qt Quick 3D sont désormais entièrement unifiés à cet égard. Tout paramètre de configuration lié à la RHI, par exemple le choix de l’API graphique à utiliser pour le rendu, s’applique aux deux.
Pour plus de détails, consultez la section « Configuration graphique requise pourQt Quick 3D ».
Autres modifications apportées aux API
Version d’importation QML
À partir de Qt 6.0, le numéro de version des instructions d’importation Qml correspond au numéro de version de Qt. Il est désormais également possible d’importer un module sans spécifier de version : cela importera la dernière version du module.
Éclairage
Light brightness représente désormais un multiplicateur d’énergie dont la valeur par défaut est 1,0, alors que Qt 5 utilisait une valeur en pourcentage dont la valeur par défaut était 100. En pratique, cela signifie que toutes les valeurs de ` brightness ` doivent être divisées par 100.
SceneEnvironment.probeBrightness est renommé « probeExposure » et est également redéfini comme un multiplicateur dont la valeur par défaut est 1,0. Autrement dit, toutes les valeurs « probeBrightness » doivent être renommées « probeExposure » et divisées par 100.
AreaLight a été supprimé pour des raisons de performances. Dans de nombreux cas, il peut être remplacé par ` SpotLight`, qui a été ajouté dans ` Qt Quick 3D 5.15`.
Matériaux personnalisés
L’API des matériaux personnalisés a été entièrement remaniée dans la version 6.0. Cela signifie que tous les matériaux personnalisés existants devront être considérablement réécrits. Consultez la documentation d’ CustomMaterial pour plus de détails sur la nouvelle API.
Effets de post-traitement
Effect ont été améliorés pour permettre l’utilisation d’un code de shader très proche de celui pris en charge par CustomMaterial, suivant les mêmes modèles en termes de structure et de mots-clés intégrés. Cela signifie que les effets existants impliquant du code de shader personnalisé devront être migrés avant de pouvoir fonctionner dans Qt 6.0. Consultez la documentation d’ Effect pour plus de détails.
Matériau « Principled »
Le type QML « PrincipledMaterial » a été considérablement amélioré dans Qt Quick 6.0 et suit désormais de plus près les principes du rendu basé sur la physique (Physically Based Rendering). Les modèles importés devraient désormais s’afficher correctement sans qu’il soit nécessaire de modifier les propriétés des matériaux. Les matériaux existants devront être modifiés afin de supprimer toute compensation liée à d’anciennes imprécisions.
| PrincipledMaterial dans Qt 5 | PrincipledMaterial dans Qt 6 |
|---|---|
|
|
Certaines propriétés voient leurs valeurs par défaut modifiées :
- metalness valeur par défaut de 0 au lieu de 1.
- specularAmount valeur par défaut de 0,5 au lieu de 0.
Matériau par défaut
Certaines propriétés voient leur valeur par défaut modifiée :
- specularRoughness la valeur par défaut est 0 au lieu de 50.
Matériaux prédéfinis
QtQuick3D 6.0 ne contient aucun matériau prédéfini. Les matériaux ajoutés dans les versions futures ne seront probablement pas compatibles avec les anciens. L’import « Materials » n’existe plus. (Le type « CustomMaterial » a été déplacé vers l’import « QtQuick3D » de base.)
Voici les types QML de matériaux qui ont été supprimés dans Qt 6.0 :
- AluminumAnodizedEmissiveMaterial
- AluminumAnodizedMaterial
- AluminumBrushedMaterial
- AluminumEmissiveMaterial
- AluminumMaterial
- Matériau en cuivre
- Matériau en verre dépoli
- Matériau en verre dépoli à passage unique
- Matériau en verre
- Matériau en verre réfractif
- Matériau papier artistique
- Matériau de bureau en papier
- Matière plastique structurée rouge émissive
- Plastique : matériau structuré rouge
- Acier - Matériau concentrique fraisé
Tessellation et cartes de déplacement
Le mode de tessellation des modèles a été supprimé afin de se concentrer davantage sur la prise en charge du matériel embarqué. Par conséquent, la prise en charge des cartes de déplacement a également été supprimée des matériaux. Des effets similaires peuvent être obtenus à l’aide d’une carte de déplacement « custom material ».
Qt Quick Itemen tant qu’enfants d’ s 3D Node
Qt Quick Bien que syntaxiquement identiques, la manière dont les éléments enfants 2D sont gérés est très différente en interne. Dans Qt 6.0, il n’y a pas d’étape implicite de rendu vers la texture. Au contraire, le contenu de l’« Text » 2D est rendu en ligne, avec la projection en perspective appropriée, au cours du même passage de rendu, ce qui offre de meilleures performances, une utilisation réduite des ressources et, dans certains cas, une fidélité visuelle potentiellement améliorée (avec l’« », par exemple). Voir Qt Quick 3D Scenes with 2D Content pour un aperçu.
Si le passage à travers une texture est important pour une raison quelconque (découpage, opacité), définissez explicitement la sous-arborescence d’ Item 2D comme un calque en activant l’option « layer.enabled: true ». De cette manière, le comportement se rapproche davantage de celui offert par Qt 5.15.
Le contenu 2D n’est plus centré sur l’origine du nœud parent. C’est plutôt le coin supérieur gauche de l’élément 2D de niveau supérieur qui est placé à l’origine du nœud 3D. Par conséquent, l’élément 2D de niveau supérieur devra souvent spécifier un point d’ancrage, tel que ` anchors.centerIn: parent`, pour obtenir des résultats identiques à ceux de Qt 5.15.
© 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.

