Qt Quick 3D - サブメッシュの例
サブメッシュにマテリアルを割り当てる方法を示します。

この例では、マテリアルとサブメッシュのマッピング方法を説明しています。
サブメッシュとマテリアル
Model が2つ以上のメッシュで構成されている場合、それらのメッシュはサブメッシュと呼ばれます。 各サブメッシュには独自のマテリアルを設定できますが、1つのモデルにつき複数のマテリアルを指定する必要はありません。サブメッシュの数がマテリアルの数より多い場合、materials リストの最後のマテリアルが、残りのすべてのサブメッシュに使用されます。 モデルにサブメッシュごとに1つのマテリアルが指定されている場合、それらは1対1でマッピングされます。つまり、リストの最初のマテリアルが最初のサブメッシュに、2番目のマテリアルが2番目のサブメッシュに、というように適用されます。 モデル内のサブメッシュの順序は、そのモデルを作成した 3D モデリングツールによる作成およびエクスポート方法によって異なります。
次の例は、立方体の各面がそれぞれ独立したサブメッシュとなっている、2つの変形した立方体です。
左側の立方体を見ると、1つの面だけが赤色で、残りの面は緑色であることがわかります。その理由は、もちろん、マテリアルが赤と緑の2つしか登録されていないためです。 このモデルでは、最初のサブメッシュは歪んだ立方体の「上面」に相当しており、マテリアルリストの先頭に赤いマテリアルが配置されているため、予想通り赤色になっています。 リストの2番目のマテリアルは緑色のもので、これは歪んだ立方体の「前面」にあたる2番目のサブメッシュにマッピングされています。また、リストの最後にあるため、歪んだ立方体の残りのすべての面にもこのマテリアルが適用されます。

DistortedCube {
x: -4
scale: Qt.vector3d(2, 2, 2)
materials: [ PrincipledMaterial {
baseColor: "red"
lighting: PrincipledMaterial.NoLighting
},
PrincipledMaterial {
baseColor: "green"
lighting: PrincipledMaterial.NoLighting
} ]右側の立方体を見ると、さらにいくつかの色が追加されていることがわかります。これはもちろん、6つのサブメッシュそれぞれに、異なる色のマテリアルを1つずつ割り当てたためです。

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