Model QML Type
3Dモデルデータを読み込みます。詳細...
Import Statement: | import QtQuick3D |
Inherits: | |
Inherited By: |
プロパティ
- bakedLightmap : BakedLightmap
- bounds : Bounds
- castsReflections : bool
(since 6.4)
- castsShadows : bool
- depthBias : real
- geometry : Geometry
- instanceRoot : QtQuick3D::Node
- instancing : QtQuick3D::Instancing
- instancingLodMax : real
- instancingLodMin : real
- inverseBindPoses : List<matrix4x4>
- levelOfDetailBias : real
(since 6.5)
- lightmapBaseResolution : int
- materials : List<QtQuick3D::Material>
- morphTargets : List<QtQuick3D::MorphTarget>
- pickable : bool
- receivesReflections : bool
- receivesShadows : bool
- skeleton : Skeleton
- skin : Skin
- source : url
- usedInBakedLighting : bool
詳細説明
Modelアイテムは、メッシュをロードし、それにマテリアルを追加することで、そのシェーディング方法を変更することを可能にします。モデルがレンダリング可能であるためには、少なくともメッシュとマテリアルが必要です。
メッシュフォーマットとビルトインプリミティブ
モデルはスタティックメッシュをストレージから読み込むか、組み込みプリミティブタイプの1つを読み込むことができます。使用されるメッシュフォーマットはエンジンにネイティブなランタイムフォーマットですが、アセットインポートツールBalsamを通じて追加フォーマットをサポートします。
ビルトイン プリミティブは、source
プロパティを次のいずれかの値に設定することでロードできます:#Rectangle, #Sphere, #Cube, #Cylinder or #Cone
。
Model { source: "#Sphere" }
カスタムジオメトリ
スタティックメッシュを使用するだけでなく、custom geometry プロバイダを実装して、実行時にカスタム頂点データをモデルに提供することもできます。カスタムマテリアルを作成してモデルで使用する方法の例については、カスタムジオメトリの例を参照してください。
マテリアル
モデルは複数のサブメッシュで構成することができ、各サブメッシュは独自のマテリアルを持つことができます。サブメッシュは、materials のリストから、そのインデックスに対応するマテリアルを使用します。マテリアルの数がサブメッシュより少ない場合、リストの最後のマテリアルがそれ以降のサブメッシュに使用されます。これはサブメッシュの例で示されています。
モデルアイテムでは以下のマテリアルを使用できます:PrincipledMaterial DefaultMaterial およびCustomMaterial 。
ピッキング
ピッキングとは、ある開始位置からシーンを通してレイを送り、どのモデルがレイと交差するかを見つけるプロセスです。Qt Quick 3Dでは、レイは通常、タッチまたはマウス・イベントから得られる2D座標を使用してビューから送信されます。モデルがレイに当たった場合、pickResult 、モデルへのハンドルとレイがモデルに当たった場所に関する情報が返されます。custom geometry を使用するモデルの場合、ピッキングはモデルのbounding volume に対してのみ行われるため、静的メッシュデータの場合よりも精度が落ちます。レイが複数のモデルを通過した場合、最も近いpickable モデルが選択されます。
モデルがpickable になるには、そのpickable プロパティがtrue
に設定されている必要があります。詳細については、Qt Quick 3D - Picking example を参照してください。
プロパティの説明
bakedLightmap : BakedLightmap |
このプロパティが有効で、有効なBakedLightmap オブジェクトに設定されている場合、モデルはライティングをベイクする際に生成されたライトマップを取得し、ライトマップは永続的に保存されます。レンダリング時、モデルは関連するライトマップをロードして使用します。デフォルト値はnullです。
注意: Modelに対して永続的に保存されるライトマップを生成することを意図している場合、Modelがライトマップされたシーンに参加するだけでなく、完全なライトマップがベイクされ保存されることを望んでいることを示すために、bakedLightmapとusedInBakedLighting の両方を設定する必要があります。
ライトマップをベイクする方法の詳細については、Lightmapper のドキュメントを参照してください。
このプロパティは、ベイク時とライトマップ使用時の両方に関係します。ベイクの実行と、生成されたデータを使用する後続の実行の間で、一貫した状態が不可欠です。例えば、ライトマップキーを変更すると、以前に生成されたデータをロードできなくなります。例外として、enabled を使用すると、ライトマップの使用を動的に切り替えることができます(ベイク実行時以外)。ただし、レンダリング結果はシーン内のLights'bakeMode 設定に依存することに注意してください。
usedInBakedLighting およびLightmapperも参照して ください。
bounds : Bounds |
モデルの境界は、モデルの周りのバウンディングボリュームの範囲を表します。
注意: モデルを最初にロードする必要がある場合、境界はすぐに利用できない可能性があります。
castsReflections : bool |
このプロパティをtrue
に設定すると、モデルは反射プローブによってレンダリングされ、反射で見ることができます。
このプロパティは Qt 6.4 で導入されました。
castsShadows : bool |
このプロパティをtrue
に設定すると、このモデルのジオメトリがシャドウ・マップへのレンダリング時に使用され、ベイクド・ライティングでも影が生成されます。
デフォルト値はtrue
です。
depthBias : real |
モデルの深度バイアスを保持します。深度バイアスは、オブジェクトをソートする際に、カメラからのオブジェクト距離に加算されます。これは、異なるフレームで異なる順序でレンダリングされる可能性のある、互いに近いオブジェクト間のレンダリング順序を強制するために使用できます。負の値を指定するとソート値がカメラに近づき、正の値を指定するとカメラから遠ざかります。
geometry : Geometry |
モデルのカスタムジオメトリを指定します。カスタムジオメトリを使用する場合、Model::source は空でなければなりません。
instanceRoot : QtQuick3D::Node |
instancing : QtQuick3D::Instancing |
このプロパティが設定されている場合、モデルは正常にレンダリングされません。代わりに、インスタンステーブルで定義された数のモデルのインスタンスがレンダリングされます。
Instancingも参照してください 。
instancingLodMax : real |
このモデルのインスタンスが表示されるカメラからの最大距離を定義します。詳細レベルの実装に使用します。
instancingLodMin : real |
このモデルのインスタンスが表示されるカメラからの最小距離を定義します。詳細レベルの実装に使用する。
inverseBindPoses : List<matrix4x4> |
このプロパティには、スケルタルアニメーションに使用される Inverse Bind Pose 行列のリストが含まれます。各 inverseBindPose マトリックスは、skeleton のJoint::index のグローバル変換の逆数を意味し、最初に使用されます。
注: このプロパティは、Model::skeleton が有効な場合にのみ使用されます。
注意 :行列のいくつかが設定されていない場合、同一値が使用されます。
Joint::indexも参照してください 。
levelOfDetailBias : real |
このプロパティは、自動詳細レベルメッシュが使用される前に、レンダリング時にモデルが必要とするサイズを変更します。生成された各詳細レベルメッシュには、各レベルが表示されるべき理想的なサイズ値が含まれており、これはレンダリングされたシーンがそのメッシュになる割合です。画面上に数ピクセルしか表示されないモデルは、正しく見えるために完全なジオメトリを必要としないので、この場合、低レベルの詳細メッシュが代わりに使用されます。この値は理想的な値への偏りであり、1.0
より小さい値は、より小さい詳細レベルに切り替える前に、さらに小さいレンダリングサイズを必要とします。値が1.0
より大きいと、より低い詳細レベルがより早く使用されるようになります。値を0.0
にすると、詳細レベルの使用を完全に無効にします。
デフォルト値は1.0
注: このプロパティは、Model のジオメトリに詳細レベルが含まれている場合にのみ効果があります。
このプロパティは Qt 6.5 で導入されました。
Camera::levelOfDetailBiasも参照してください 。
lightmapBaseResolution : int |
このモデルのライトマップのおおよそのサイズを定義します。デフォルト値は 1024 で、1024x1024 が基本サイズであることを示します。ライトマップテクスチャの実際のサイズは、メッシュによって異なり、多くの場合大きくなります。
より単純で小さいメッシュの場合、またはより大きなライトマップを使用する必要がないことが分かっている場合、値をより小さいもの、たとえば512や256に設定することができます。
最小値は128です。
この設定は、永続的に保存されるライトマップにも、中間的な部分的なライトマップにも適用されます。ライトマップをベイクするとき、usedInBakedLighting が有効になっているすべてのモデルは、パストレースされたシーンの一部です。そのため、すべてのモデルにライトマップのUVアンラッピングを実行させ、シーン内の間接光のバウンスを考慮できる直接照明を計算するために必要なラスタライズステップを実行させる必要があります。しかし、ライトマップに寄与するだけで、ライトマップを保存しないモデルの場合は、デフォルト値で十分なことが多いです。微調整は、生成されたライトマップを保存して使用するモデルにとってより適切です。
このプロパティは、ライトマップをベイクするときにのみ関係します。その後、レンダリング中に生成されたライトマップを使用する場合には、何の効果もありません。
アセットインポート時にライトマップUVデータが事前に生成されているモデル(バルサムツール経由など)は、ライトマップUVアンラッピングとライトマップサイズヒント評価が既に実行されており、ライトマップベイク時に再度実行されないため、このプロパティを無視します。
materials : List<QtQuick3D::Material> |
このプロパティには、提供されたジオメトリのレンダリングに使用されるマテリアルのリストが含まれます。何かをレンダリングするには、少なくとも1つのマテリアルが必要です。通常は、ソースジオメトリに含まれる各サブメッシュに対して 1 つのマテリアルが必要です。
Qt Quick 3D - サブメッシュの例」も参照してください 。
morphTargets : List<QtQuick3D::MorphTarget> |
このプロパティには、提供されたジオメトリのレンダリングに使用されるMorphTargetのリストが含まれます。メッシュは、モーフターゲットの位置、法線、接線、バイノーマル、テクスチャ座標、頂点カラーのうち、少なくとも1つのアトリビュートを持つ必要があります。
MorphTargetも参照してください 。
pickable : bool |
このプロパティは、モデルがピッキング可能かどうかを制御します。モデルをピッキング可能にするには、このプロパティをtrue
に設定します。デフォルトでは、モデルはピッキングできません。
View3D::pickも参照して ください。
receivesReflections : bool |
このプロパティをtrue
に設定すると、モデルのマテリアルは反射プローブからの反射の寄与を受けます。モデルが同時に複数の反射プローブ内にある場合、最も近い反射プローブが考慮されます。
receivesShadows : bool |
このプロパティがtrue
に設定されている場合、モデルのマテリアルは影を投影するライトからの影の寄与を考慮します。
注意: このモデルでライトマッピングが有効になっている場合、Light::bakeMode が Light.BakeModeAll に設定された完全ベイクライトは、このプロパティの値に関係なく、常にモデル上に(ベイクされた)影を生成します。
デフォルト値はtrue
です。
skeleton : Skeleton |
モデルのスケルトンを含みます。スケルトンは、inverseBindPoses と共にスキニングに使用されます。
注: モデルのメッシュには、ジョイントとウェイトの両方のアトリビュートが必要です。
注: このプロパティを設定すると、スキニング・アニメーションが有効になります。これは、Model が、Model のグローバルトランスフォーメーションを無視して、Skeleton に基づいてトランスフォームされることを意味します。
Model::inverseBindPoses およびQt Quick 3D - Simple Skinning Exampleも参照してください 。
skin : Skin |
モデルのスケルトンを含みます。スケルトンはスキニングに使用されます。
Note: モデルのメッシュは、ジョイントとウェイトの両方のアトリビュートを持つ必要があります。
注意 :このプロパティが設定されていると、スキニングアニメーションが有効になります。つまり、Model はSkin::joints に基づいてトランスフォームされ、Model のグローバル トランスフォームは無視されます。
注: モデルにスケルトンとスキンの両方がある場合、スキンが使用されます。
Qt Quick 3D - Simple Skinning Exampleも参照してください 。
source : url |
このプロパティは、このModelのジオメトリを含むメッシュファイル、またはMesh format and built-in primitives で説明されている以下の組み込みプリミティブメッシュの1つの場所を定義します。
- "#Rectangle"
- "#Sphere"
- "#立方体"
- "#コーン"
- "#円柱"
usedInBakedLighting : bool |
このプロパティがtrue
に設定されている場合、モデルはライトマップなどのベイクドライティングに、影や間接光などの形で寄与します。この設定は、モデルのライトマップ生成の制御とは独立しており、bakedLightmap を使用します。
デフォルト値はfalse
です。
注意: デフォルト値は false です。なぜなら、デザイナーや開発者は、オブジェクトがベイクド・ライティングに参加するのに適しているかどうかを、常にモデルごとに評価しなければならないからです。
警告 例えば、位置や回転などのプロパティが動的に変化するモデルは、ベイクド・ライティングに参加するのに適していません。
ライトマップをベイクする方法の詳細については、Lightmapper のドキュメントを参照してください。
このプロパティは、ライトマップをベイクするときにのみ関係します。その後、生成されたライトマップをレンダリング時に使用する場合には、何の効果もありません。
Light::bakeMode,bakedLightmap,Lightmapper, およびLightmaps and Global Illuminationも参照して ください。
本ドキュメントに含まれる文書の著作権は、それぞれの所有者に帰属します。 本書で提供されるドキュメントは、Free Software Foundation が発行したGNU Free Documentation License version 1.3に基づいてライセンスされています。 Qtおよびそれぞれのロゴは、フィンランドおよびその他の国におけるThe Qt Company Ltd.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。