Qt Quick 3D - Ebenen Beispiel
Demonstriert die Verwendung von Ebenen in QtQuick3D.

In diesem Beispiel werden die verschiedenfarbigen Logomodelle in verschiedenen Ebenen platziert. Im Einstellungsfenster können die Benutzer die Sichtbarkeit der einzelnen Ebenen durch Aktivieren der Kontrollkästchen steuern.
Vorbereiten der Szenenebenen
Ebenen
Der Einfachheit halber geben wir dem Layer enums-Typ einen Alias, um ihn leichter identifizieren zu können.
readonly property int redModels: ContentLayer.Layer1 readonly property int greenModels: ContentLayer.Layer2 readonly property int blueModels: ContentLayer.Layer3
Kamera
Da wir die Kameraansicht anhand der Ebenen filtern wollen, müssen wir die Ebenen festlegen, die die Kamera rendern soll. Dazu setzen wir die Eigenschaft layers der Kamera auf eine oder mehrere Ebenen. Die Kamera rendert dann nur die Objekte, die sich auf der angegebenen layers befinden. Standardmäßig rendert die Kamera Knoten aus allen layers.
Um die aktiven Ebenen auswählen zu können, erstellen wir eine Eigenschaft cameraFilter und binden sie an die Eigenschaft layers der Kamera.
property int cameraFilter: ContentLayer.LayerAll camera: PerspectiveCamera { layers: v3d.cameraFilter position: Qt.vector3d(0, 400, 500) eulerRotation.x: -30 clipFar: 2000 }
Wenn die Kontrollkästchen im Einstellungsfenster aktiviert werden, wird die Eigenschaft cameraFilter aktualisiert, um die jeweiligen Ebenen ein- oder auszuschließen. Auf diese Weise rendert die Kamera nur die Objekte, die sich in den von cameraFilter angegebenen Ebenen befinden.
CheckBox { id: checkBoxRedLayer text: qsTr("Red Layer") checked: true onCheckedChanged: { v3d.cameraFilter = checked ? v3d.cameraFilter | v3d.redModels : v3d.cameraFilter & ~v3d.redModels; } }
Modelle
Die drei verschiedenfarbigen Modelle müssen nun den jeweiligen Ebenen zugewiesen werden. Wie bei der Kamera können wir die Eigenschaft layers des Modells verwenden, um es einer Ebene zuzuordnen. Das rote Logomodell wird der Ebene redLayer zugewiesen, das grüne der Ebene greenLayer und das blaue der Ebene blueLayer.
Node { position: Qt.vector3d(0, 200, 0) Model { source: "qtlogo.mesh" layers: v3d.redModels scale: Qt.vector3d(5000, 5000, 5000) materials:[ PrincipledMaterial { baseColor: "red" roughness: 0.5 } ] NumberAnimation on eulerRotation.y { from: 0 to: 360 duration: 15000 loops: Animation.Infinite } } Model { position: Qt.vector3d(0, -50, 0) source: "#Cylinder" materials:[ PrincipledMaterial { baseColor: "red" roughness: 0.5 } ] } } Node { position: Qt.vector3d(0, 100, 0) Model { source: "qtlogo.mesh" layers: v3d.greenModels scale: Qt.vector3d(5000, 5000, 5000) materials:[ PrincipledMaterial { baseColor: "green" roughness: 0.5 } ] NumberAnimation on eulerRotation.y { from: 0 to: 360 duration: 20000 loops: Animation.Infinite } } Model { position: Qt.vector3d(0, -50, 0) source: "#Cylinder" materials:[ PrincipledMaterial { baseColor: "green" roughness: 0.5 } ] } } Node { Model { source: "qtlogo.mesh" layers: v3d.blueModels scale: Qt.vector3d(5000, 5000, 5000) materials:[ PrincipledMaterial { baseColor: "blue" roughness: 0.5 } ] NumberAnimation on eulerRotation.y { from: 0 to: 360 duration: 12500 loops: Animation.Infinite } } Model { position: Qt.vector3d(0, -50, 0) source: "#Cylinder" materials:[ PrincipledMaterial { baseColor: "blue" roughness: 0.5 } ] } }
Wenn die Ebenen eingerichtet sind, rendert die Kamera nur die Modelle, die sich in den von cameraFilter angegebenen Ebenen befinden. Der Benutzer kann die Sichtbarkeit der einzelnen Ebenen durch Aktivieren oder Deaktivieren der Kontrollkästchen im Einstellungsfenster umschalten.
© 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.