Auf dieser Seite

Qt Quick 3D - Beispiel für „Principled Material“

Veranschaulicht die Verwendung von „Principled Material“.

Materialvorschau mit Bedienfeld und Schiebereglern für Eigenschaften

Dieses Beispiel dient als interaktive Dokumentation zur Verwendung von „ PrincipledMaterial “. Zu jeder Eigenschaft von „ PrincipledMaterial “ gibt es eine Erläuterung zur Verwendung sowie die Möglichkeit, mit der Anpassung der einzelnen Eigenschaften zu experimentieren.

Verwendung

Dieses Beispiel ist in zwei Ansichten unterteilt: links die interaktive Dokumentation und die Steuerelemente, rechts der 3D-Viewer. Der 3D-Viewer ist interaktiv und ermöglicht es, die Kamera um das Zielmodell herum zu drehen. Um den Fokus auf ein bestimmtes Modell zurückzusetzen, tippen oder klicken Sie einfach auf das Modell, auf das Sie den Fokus richten möchten. Die Aufteilung zwischen den beiden Ansichten lässt sich durch Ziehen der Leiste zwischen den Ansichten anpassen.

Das Beispiel ist in mehrere Abschnitte unterteilt, die die verschiedenen Funktionen von „ PrincipledMaterial “ in überschaubare Einheiten gruppieren. Jeder Abschnitt kann durch Klicken auf die Registerkarten oben im Erklärungsbereich aufgerufen werden.

SpecularGlossyMaterial

Neben der Demonstration des von „ PrincipledMaterial “ bereitgestellten PBR-Workflows „Metalness/Roughness“ ist es möglich, auf den „Specular/Glossy“-Workflow umzuschalten, der den „ SpecularGlossyMaterial “ verwendet. Dies kann über einen Schalter im Abschnitt „Basics“ erfolgen.

Resource Loader

Die komplexere Natur dieses Beispiels bietet zudem die Gelegenheit, die Verwendung der „ ResourceLoader “-Komponente zu veranschaulichen. Wenn ein Modell in der Szene nicht mehr sichtbar ist, werden alle mit dem Modell verbundenen Ressourcen von „ Qt Quick 3D “ freigegeben (vorausgesetzt, keine der Ressourcen wird von anderen Modellen in der Szene verwendet). In diesem Beispiel ist es möglich, das Vorhangmodell auszublenden; dadurch würden 2 Meshes und 2 Texturen aus dem GPU-Speicher freigegeben. Wenn der Vorhang jedoch das nächste Mal sichtbar gemacht wird, müssten diese Ressourcen erneut auf die GPU geladen werden. Auf manchen Hardware-Systemen kann dieses Laden zu einem kurzzeitigen Einbruch der Bildrate führen. Um dies zu mildern, wird innerhalb der „BackgroundCurtain“-Komponente eine „ ResourceLoader “-Komponente verwendet.

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
    ]
}

Hier werden sowohl die Mesh-Dateien als auch die Texturen mit „ ResourceLoader “ registriert. „ ResourceLoader “ stellt sicher, dass alle registrierten Ressourcen stets im GPU-Speicher zur Verwendung bereitstehen; somit bleiben die Ressourcen nun unabhängig von der Sichtbarkeit des „BackgroundCurtain“ erhalten.

Das `ResourceLoaded` kann auch zum Vorladen von Ressourcen verwendet werden, wie anhand der Punkt- und Linien-Meshes auf der Registerkarte „Special“ gezeigt wird.

ResourceLoader {
    meshSources: [
        "meshes/logo_lines.mesh",
        "meshes/logo_points.mesh"
    ]
}

Hier werden die „ QUrl “ der Mesh-Dateien direkt aufgelistet. Ressourcen müssen nicht mit einem Modell verknüpft sein, um von einem „ ResourceLoader “ verwendet zu werden.

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.