Qt Quick 3D - Exemple de matériau basé sur des principes
Illustre l'utilisation des matériaux basés sur des principes.

Cet exemple sert de documentation interactive sur l'utilisation de « PrincipledMaterial ». Chaque propriété de « PrincipledMaterial » est accompagnée d'une explication sur son utilisation ainsi que d'une méthode permettant d'expérimenter le réglage de chaque propriété.
Utilisation
Cet exemple est divisé en deux vues : la documentation interactive et les commandes à gauche, et la visionneuse 3D à droite. La visionneuse 3D est interactive et permet de faire pivoter la caméra autour du modèle cible. Pour recentrer la vue sur un modèle particulier, il suffit de toucher ou de cliquer sur le modèle souhaité. La séparation entre les deux vues est redimensionnable en faisant glisser la barre située entre les deux vues.
L'exemple est divisé en plusieurs sections qui regroupent les différentes fonctionnalités d'PrincipledMaterial en blocs faciles à gérer. Chaque section est accessible en cliquant sur les onglets situés en haut de la zone d'explication.
SpecularGlossyMaterial
En plus de présenter le workflow PBR « Metalness/Roughness » fourni par PrincipledMaterial, il est possible de basculer vers le workflow « Specular/Glossy » qui utilise le module « SpecularGlossyMaterial ». Pour ce faire, il suffit d’activer l’option correspondante dans la section « Basics ».
Chargeur de ressources
La nature plus complexe de cet exemple permet également de démontrer l’utilisation du composant ResourceLoader. Lorsqu’un modèle n’est plus visible dans la scène, toutes les ressources associées à ce modèle sont libérées par Qt Quick 3D (à condition qu’aucune de ces ressources ne soit utilisée par d’autres modèles de la scène). Dans cet exemple, il est possible de masquer le modèle de rideau, ce qui libérerait 2 maillages et 2 textures de la mémoire du GPU. Cependant, la prochaine fois que le rideau sera rendu visible, ces ressources devront être rechargées sur le GPU. Sur certains matériels, ce rechargement peut entraîner une baisse momentanée du taux de rafraîchissement ; pour atténuer ce phénomène, un composant « ResourceLoader » est utilisé à l’intérieur du composant « BackgroundCurtain ».
ResourceLoader {
meshSources: [
frame.source,
curtain.source
]
textures: [
tilePatternTexture,
curtainNormalTexture
]
}
Model {
id: frame
z: -1.95
source: "meshes/frame.mesh"
PrincipledMaterial {
id: frame_material
baseColor: "#ffcccccc"
metalness: 1
roughness: 0.259091
alphaMode: PrincipledMaterial.Opaque
}
materials: [
frame_material
]
}
Model {
id: curtain
y: 3.02413
z: 2.04922
source: "meshes/curtain.mesh"
PrincipledMaterial {
id: curtain_material
baseColorMap: Texture {
id: tilePatternTexture
source: "maps/tilepattern.png"
generateMipmaps: true
mipFilter: Texture.Linear
}
opacityChannel: Material.A
roughness: 0.5
normalMap: Texture {
id: curtainNormalTexture
source: "maps/curtain_normal.jpg"
generateMipmaps: true
mipFilter: Texture.Linear
}
cullMode: Material.NoCulling
alphaMode: PrincipledMaterial.Opaque
}
materials: [
curtain_material
]
}Ici, les fichiers de maillage et les textures sont enregistrés à l’aide de la fonction ` ResourceLoader`. La fonction ` ResourceLoader ` garantit que toutes les ressources enregistrées seront toujours prêtes à l’emploi dans la mémoire du GPU ; ainsi, quelle que soit la visibilité du composant `BackgroundCurtain`, ses ressources seront conservées.
L’événement `ResourceLoaded` peut également être utilisé pour précharger des ressources, comme le montrent les maillages de points et de lignes sous l’onglet « Special ».
ResourceLoader {
meshSources: [
"meshes/logo_lines.mesh",
"meshes/logo_points.mesh"
]
}Ici, les attributs ` QUrl` des fichiers de maillage sont répertoriés directement. Les ressources n’ont pas besoin d’être associées à un modèle pour être utilisées par un ` ResourceLoader`.
© 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.