Qt Quick 3D - Einfaches RuntimeLoader-Beispiel
Veranschaulicht das Laden eines 3D-Assets zur Laufzeit und das Abfragen seiner Szenenobjekte.

Dieses Beispiel zeigt, wie man mit „ RuntimeLoader “ ein 3D-Asset zur Laufzeit lädt und wie man mit den Funktionen von „ query “ die in der geladenen Szene enthaltenen Materialien, Kameras und Lichter ermittelt.
Laden des Assets
Das Element „ RuntimeLoader “ lädt ein glTF 2.0-Asset und erstellt die entsprechenden „ Qt Quick 3D “-Objekte als seine untergeordneten Elemente. Die Eigenschaft „ source “ verweist auf die Asset-Datei:
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]
}
}Sobald sich „ status “ in „ RuntimeLoader.Success “ ändert, ist die Szene bereit und die Abfragefunktionen können aufgerufen werden.
Abfrage von Szenenobjekten
Nach erfolgreichem Laden gibt ` queryAll()` eine Liste aller Szenenobjekte zurück, die einem bestimmten ` QueryFilter` entsprechen. Das Beispiel ruft Materialien, Kameras und Lichter in einem Schritt ab:
root.sceneMaterials = loader.queryAll(RuntimeLoader.Materials)
root.sceneCameras = loader.queryAll(RuntimeLoader.Cameras)
root.sceneLights = loader.queryAll(RuntimeLoader.Lights)Die zurückgegebenen Listen sind einfache JavaScript-Arrays mit QQuick3DObject -Referenzen. Sie können direkt einem ` ListView model ` zugewiesen oder zum Festlegen aktiver Szeneneigenschaften wie ` View3D.camera` verwendet werden.
Interaktion mit Szenenobjekten
Materialien
Jeder Eintrag in der Materialliste kann ausgewählt werden, um ihm eines der Farbmuster zuzuweisen. Die Hilfsfunktion wandelt das zurückgegebene Objekt in den richtigen Materialtyp um, bevor die Farbeigenschaft beschrieben wird:
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
}Kameras
Durch Klicken auf einen Kameraeintrag im Seitenbereich wird dieser „ View3D.camera “ zugewiesen, wodurch der aktive Blickpunkt sofort gewechselt wird.
Lichter
Jede Lichtquelle im Seitenbereich verfügt über einen Schalter, der die Eigenschaft „ visible “ der Lichtquelle festlegt und sie so aktiviert oder deaktiviert, ohne sie aus der Szene zu entfernen:
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.