Auf dieser Seite

Qt Quick 3D - Beispiel für Untergitter

Veranschaulicht, wie Materialien Submeshes zugewiesen werden.

Zwei Würfel mit Sub-Mesh-Materialien

Dieses Beispiel veranschaulicht, wie Materialien und Submeshes zugeordnet werden.

Submeshes und Materialien

Wenn ein „ Model “ aus zwei oder mehr Meshes besteht, werden diese Meshes als Sub-Meshes bezeichnet. Jedes Sub-Mesh kann ein eigenes Material haben, es ist jedoch nicht erforderlich, mehr als ein Material pro Modell anzugeben. Wenn es mehr Sub-Meshes als Materialien gibt, wird das letzte Material in der Liste „ materials “ für alle verbleibenden Sub-Meshes verwendet. Wird ein Modell mit einem Material pro Teilgitter bereitgestellt, werden diese eins-zu-eins zugeordnet, d. h., das erste Material in der Liste wird auf das erste Teilgitter angewendet, das zweite Material auf das zweite Teilgitter und so weiter. Die Reihenfolge der Submeshes in einem Modell hängt davon ab, wie das Modell mit dem zur Erstellung verwendeten 3D-Modellierungsprogramm erstellt und exportiert wurde.

Das folgende Beispiel zeigt zwei verzerrte Würfel, bei denen jede Seite des Würfels ein eigenes Teilnetz darstellt.

Betrachtet man den Würfel auf der linken Seite, so sieht man, dass eine Seite rot gefärbt ist, während die übrigen Seiten grün sind; der Grund dafür ist natürlich, dass das Material nur zwei Materialien enthält, nämlich ein rotes und ein grünes. In unserem Modell ist das erste Teilgitter zufällig die „obere“ Seite des verzerrten Würfels, und da das rote Material an erster Stelle in der Materialliste steht, erhält es wie erwartet eine rote Farbe. Das zweite Material in der Liste ist das grüne Material, das dem zweiten Teilgitter zugeordnet ist – also der „Vorderseite“ des verzerrten Würfels. Da es das letzte Material in der Liste ist, wird es auch für alle übrigen Seiten des verzerrten Würfels verwendet.

Verzerrter Würfel mit roter Rückseite und grüner Vorderseite und Seiten

DistortedCube {
    x: -4
    scale: Qt.vector3d(2, 2, 2)
    materials: [ PrincipledMaterial {
        baseColor: "red"
        lighting: PrincipledMaterial.NoLighting
    },
    PrincipledMaterial {
                    baseColor: "green"
                    lighting: PrincipledMaterial.NoLighting
                } ]

Wenn wir uns den Würfel auf der rechten Seite ansehen, können wir erkennen, dass er nun über weitere Farben verfügt. Dies liegt natürlich daran, dass wir nun für jedes der sechs Teilgitter ein eigenes Material mit jeweils einer anderen Farbe zugewiesen haben.

Verzerrter Würfel mit sechs verschiedenfarbigen Seiten

Model {
    source: "qrc:/meshes/distortedcube.mesh"

    PrincipledMaterial {
        id: frontTop_material
        baseColor: "red"
        cullMode: Material.NoCulling
        lighting: PrincipledMaterial.NoLighting
    }

    PrincipledMaterial {
        id: frontBottom_material
        baseColor: "green"
        cullMode: Material.NoCulling
        lighting: PrincipledMaterial.NoLighting
    }

    PrincipledMaterial {
        id: leftSide_material
        baseColor: "blue"
        cullMode: Material.NoCulling
        lighting: PrincipledMaterial.NoLighting
    }

    PrincipledMaterial {
        id: rightSide_material
        baseColor: "pink"
        cullMode: Material.NoCulling
        lighting: PrincipledMaterial.NoLighting
    }

    PrincipledMaterial {
        id: backSide_material
        baseColor: "orange"
        cullMode: Material.NoCulling
        lighting: PrincipledMaterial.NoLighting
    }

    PrincipledMaterial {
        id: bottomSide_material
        baseColor: "navy"
        cullMode: Material.NoCulling
        lighting: PrincipledMaterial.NoLighting
    }

    materials: [
        frontTop_material,
        frontBottom_material,
        leftSide_material,
        backSide_material,
        rightSide_material,
        bottomSide_material
    ]
}

Beispielprojekt @ code.qt.io

© 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.