このページでは

Qt Quick 3D - プリンシpledマテリアルの例

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の表示状態にかかわらず、そのリソースは保持されることになります。

「Special」タブの下にある点や線のメッシュが示すように、ResourceLoaded を使用してリソースをプリロードすることもできます。

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

ここでは、メッシュファイルのQUrl が直接リストされています。ResourceLoader で使用されるリソースは、必ずしもModelに関連付けられている必要はありません。

サンプルプロジェクト @ 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.