Qt Quick 3D - Prinzipielles Material Beispiel
Demonstriert die Verwendung von Principled Material.
Dieses Beispiel dient als interaktive Dokumentation für die Verwendung von PrincipledMaterial. Zu jeder Eigenschaft von PrincipledMaterial gibt es eine Erklärung, wie sie verwendet wird, sowie eine Möglichkeit, mit der Anpassung jeder Eigenschaft zu experimentieren.
Verwendung
Dieses Beispiel ist in zwei Ansichten aufgeteilt: die interaktive Dokumentation und die Steuerelemente auf der linken Seite und der 3D-Viewer auf der rechten Seite. Der 3D-Viewer ist interaktiv und ermöglicht es, die Kamera um das Zielmodell kreisen zu lassen. Um den Fokus auf ein bestimmtes Modell zu setzen, berühren oder klicken Sie einfach das Modell, auf das Sie den Fokus setzen möchten. Die Größe der beiden Ansichten lässt sich durch Ziehen der Leiste zwischen den Ansichten ändern.
Das Beispiel ist in mehrere Abschnitte unterteilt, in denen die verschiedenen Funktionen von PrincipledMaterial in überschaubaren Abschnitten zusammengefasst sind. Jeder Abschnitt kann durch Klicken auf die Registerkarten oben im Erklärungsbereich aufgerufen werden.
SpecularGlossyMaterial
Zusätzlich zur Demonstration des von PrincipledMaterial bereitgestellten PBR-Workflows "Metallizität/Rauheit" ist es möglich, zum Workflow "Specular/Glossy" zu wechseln, der SpecularGlossyMaterial verwendet. Dies kann durch einen Schalter im Abschnitt "Grundlagen" erfolgen.
Ressourcen-Lader
Die komplexere Natur dieses Beispiels bietet auch die Möglichkeit, die Verwendung der Komponente ResourceLoader zu demonstrieren. Wenn ein Modell nicht mehr in der Szene sichtbar ist, werden alle mit dem Modell verbundenen Ressourcen von Qt Quick 3D freigegeben (vorausgesetzt, dass keine der Ressourcen von anderen Modellen in der Szene verwendet werden). In diesem Beispiel ist es möglich, das Vorhangmodell auszublenden, wodurch 2 Meshes und 2 Texturen aus dem GPU-Speicher freigegeben werden. Wenn der Vorhang jedoch das nächste Mal sichtbar gemacht wird, müssen diese Ressourcen erneut in den Grafikprozessor geladen werden. Auf mancher Hardware kann dieses Hochladen zu einem kurzzeitigen Einbruch der Bildrate führen. Um dies abzumildern, wird eine ResourceLoader Komponente innerhalb der BackgroundCurtain 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 einer ResourceLoader registriert. ResourceLoader stellt sicher, dass alle registrierten Ressourcen immer für die Verwendung im GPU-Speicher bereit sind, so dass jetzt unabhängig von der Sichtbarkeit des BackgroundCurtain seine Ressourcen erhalten bleiben.
ResouceLoaded kann auch zum Vorladen von Ressourcen verwendet werden, wie bei den Punkt- und Liniennetzen unter der Registerkarte "Spezial" gezeigt.
ResourceLoader { meshSources: [ "meshes/logo_lines.mesh", "meshes/logo_points.mesh" ] }
Hier werden die QUrl's der Mesh-Dateien direkt aufgelistet. Ressourcen müssen nicht mit einem Modell verknüpft sein, um von einem ResourceLoader verwendet werden zu können.
© 2025 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.