Qt Quick 3D - Exemple simple de RuntimeLoader
Illustre le chargement d'un élément 3D à l'exécution et l'interrogation de ses objets de scène.

Cet exemple montre comment utiliser ` RuntimeLoader ` pour charger un ressource 3D à l'exécution et comment utiliser les fonctions de ` query ` pour identifier les matériaux, les caméras et les lumières contenus dans la scène chargée.
Chargement de la ressource
L’élément RuntimeLoader charge un ressource glTF 2.0 et crée les objets 3D Qt Quick correspondants en tant qu’enfants. La propriété source pointe vers le fichier de la ressource :
RuntimeLoader {
id: loader
source: "torus_and_cone.glb"
onStatusChanged: {
if (status !== RuntimeLoader.Success)
return
root.sceneMaterials = loader.queryAll(RuntimeLoader.Materials)
root.sceneCameras = loader.queryAll(RuntimeLoader.Cameras)
root.sceneLights = loader.queryAll(RuntimeLoader.Lights)
if (root.sceneCameras.length > 0)
view3d.camera = root.sceneCameras[0]
if (root.sceneMaterials.length > 0)
root.selectedMaterial = root.sceneMaterials[0]
}
}Une fois que l’ status passe à l’état « RuntimeLoader.Success », la scène est prête et les fonctions de requête peuvent être appelées.
Interrogation des objets de scène
Une fois le chargement réussi, la méthode queryAll() renvoie une liste de tous les objets de scène correspondant à un QueryFilter donné. L’exemple récupère les matériaux, les caméras et les lumières en une seule fois :
root.sceneMaterials = loader.queryAll(RuntimeLoader.Materials)
root.sceneCameras = loader.queryAll(RuntimeLoader.Cameras)
root.sceneLights = loader.queryAll(RuntimeLoader.Lights)Les listes renvoyées sont des tableaux JavaScript simples contenant des références à des objets ` QQuick3DObject `. Elles peuvent être attribuées directement à une instance de ` ListView model ` ou utilisées pour définir des propriétés de la scène active, telles que ` View3D.camera`.
Interaction avec les objets de scène
Matériaux
Chaque entrée de la liste des matériaux peut être sélectionnée pour lui appliquer l’un des échantillons de couleur. La fonction d’aide convertit l’objet renvoyé au type de matériau approprié avant d’écrire dans la propriété « color » :
function applyColorToSelected(color) {
if (!root.selectedMaterial)
return
if (root.selectedMaterial instanceof PrincipledMaterial)
(root.selectedMaterial as PrincipledMaterial).baseColor = color
else if (root.selectedMaterial instanceof SpecularGlossyMaterial)
(root.selectedMaterial as SpecularGlossyMaterial).albedoColor = color
}Caméras
Cliquer sur une entrée de caméra dans le panneau latéral l’attribue à View3D.camera, ce qui change immédiatement le point de vue actif.
Lumières
Chaque lumière du panneau latéral dispose d'un bouton permettant de définir sa propriété « visible » (allumer/éteindre), ce qui permet de l'activer ou de la désactiver sans la supprimer de la scène :
Switch {
checked: modelData.visible
onToggled: modelData.visible = checked
}© 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.