Qt Quick 3D - プリンシプルマテリアルの使用例
Principled Materialの使用例を示します。

この使用例は、PrincipledMaterial の使用方法に関するインタラクティブなドキュメントの役割を果たします。PrincipledMaterial の各プロパティには、その使用方法についての説明と、各プロパティを調整するための実験方法が付属しています。
使い方
このサンプルは、左側のインタラクティブなドキュメントとコントロール、右側の3Dビューアの2つのビューに分かれています。3Dビューアはインタラクティブで、カメラをターゲットモデルの周りを周回させることができます。特定のモデルへのフォーカスをリセットするには、フォーカスするモデルをタッチまたはクリックするだけです。2つのビューの間の分割は、ビューの間でバーをドラッグすることでサイズを変更できます。
サンプルは複数のセクションに分かれており、PrincipledMaterial の様々な機能が管理しやすいかたまりにまとめられています。各セクションには、説明エリアの上部にあるタブをクリックすることでアクセスできます。
SpecularGlossyMaterial
PrincipledMaterial が提供する Metalness/Roughness PBR ワークフローのデモに加え、SpecularGlossyMaterial を使用する Specular/Glossy ワークフローの使用に切り替えることが可能です。これは、Basics セクションのスイッチで実行できます。
リソースローダー
この例はより複雑なため、ResourceLoader コンポーネントの使い方を示す機会にもなります。モデルがシーンで表示されなくなると、モデルに関連するリソースはQt Quick 3D によって解放されます(シーン内の他のモデルによってリソースが使用されていないと仮定して)。この例では、カーテンモデルを非表示にすることが可能で、そうすることで2つのメッシュと2つのテクスチャがGPUメモリから解放されます。しかし、次にカーテンを見えるようにするときは、これらのリソースを GPU に再アップロードする必要があります。ハードウェアによっては、このアップロードによってフレームレートが一瞬低下することがあるため、これを軽減するためにBackgroundCurtainコンポーネントの内部でResourceLoader コンポーネントが使用されています。
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 ] }
ここでメッシュファイルとテクスチャの両方がResourceLoader に登録されます。ResourceLoader は登録されたリソースが常に GPU メモリで使用できるようにするため、BackgroundCurtain の可視性に関係なく、そのリソースは保持されます。
ResouceLoadedは、"Special "タブの下の点メッシュと線メッシュで示されているように、リソースをプリロードするために使用することもできます。
ResourceLoader { meshSources: [ "meshes/logo_lines.mesh", "meshes/logo_points.mesh" ] }
ここでは、メッシュファイルのQUrl'が直接リストされています。リソースは、ResourceLoader で使用するために、モデルに関連付けられている必要はありません。
© 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.