DefaultMaterial QML Type
鏡面/光沢ワークフローを使用して、3Dアイテムのマテリアルを定義できます。詳細...
| Import Statement: | import QtQuick3D |
| Inherits: | |
| Status: | Deprecated since 6.4 |
この型はQtQuick3D 6.4以降非推奨です。新しいコードでは使用しないことを強くお勧めします。
プロパティ
- blendMode : enumeration
- bumpAmount : real
- bumpMap : Texture
- diffuseColor : color
- diffuseLightWrap : real
- diffuseMap : Texture
- emissiveFactor : vector3d
- emissiveMap : Texture
- fresnelPower : real
- indexOfRefraction : real
- lighting : enumeration
- lineWidth : real
- normalMap : Texture
- opacity : real
- opacityChannel : enumeration
- opacityMap : Texture
- pointSize : real
- roughnessChannel : enumeration
- roughnessMap : Texture
- specularAmount : real
- specularMap : Texture
- specularModel : enumeration
- specularReflectionMap : Texture
- specularRoughness : real
- specularTint : color
- translucencyChannel : enumeration
- translucencyMap : Texture
- translucentFalloff : real
- vertexColorsEnabled : bool
詳細説明
代わりにPrincipledMaterial またはSpecularGlossyMaterial を使用してください。
警告 このマテリアルは互換性のためにのみ提供されており、新しいコードでは使用しないでください。スペキュラ/光沢ワークフローを使用してマテリアルを作成する場合はSpecularGlossyMaterial を、メタル/粗さワークフローを使用してマテリアルを作成する場合はPrincipledMaterial を使用してください。
モデルをシーンでレンダリングする前に、メッシュがどのようにシェーディングされるべきかを記述するマテリアルを少なくとも1つ添付する必要があります。DefaultMaterialは、スペキュラ/光沢タイプのワークフローを使用してマテリアルを記述できる、使いやすいマテリアルです。このマテリアルは感覚的なデフォルトを持ち、プロパティを変更することなくモデルをシェーディングするために使用できます。
スペキュラ/光沢ワークフロー
デフォルトマテリアルは、スペキュラ/光沢タイプのワークフローを使用してマテリアルを作成する方法を提供します。マテリアルの主なプロパティは、specular 、roughness 、diffuse color プロパティによって制御されます。
スペキュラ
specular reflectivity は、オブジェクトの表面の鏡面量と色を記述します。反射するマテリアルの場合、主な色の寄与はこのプロパティから得られます。
光沢度(粗さ)
表面の光沢度は、表面が滑らかか不規則かによって決まります。滑らかな表面は光の反射が強く、粗い表面は光の反射が広がります。Defaultマテリアルでは、マテリアルの光沢度はroughness プロパティで制御できます。
拡散色
diffuse color プロパティはマテリアルの基本色を記述します。PrincipledMaterial の基本色とは異なり、拡散色にはマテリアルの反射率に関する情報は含まれていません。ただし、反射するサーフェイスの場合は、スペキュラカラーが寄与できるように、ディフューズカラーを黒味に設定する必要があります。
プロパティの説明
blendMode : enumeration
このプロパティは、レンダリングされたモデルの色が、背後のモデルとどのようにブレンドされるかを決定します。
| 定数 | 説明 |
|---|---|
DefaultMaterial.SourceOver | デフォルトのブレンドモード。不透明なオブジェクトは、背後にあるオブジェクトをオクルードします。このデフォルトモードは、このマテリアルを使用するモデルに対して、レンダリングパイプラインでのアルファブレンディングを保証するものではなく、多くの要因によって決定されます。オブジェクトとマテリアルの合計不透明度が1.0 、マテリアルに半透明のピクセルを持つテクスチャマップがない場合、モデルは不透明として扱われ、深度テストと深度書き込みを有効にして、他の不透明オブジェクトと一緒に、ブレンディングを無効にしてレンダリングされます。そうでない場合、モデルは半透明として扱われ、不透明オブジェクトの後に、他の半透明オブジェクトと一緒に、カメラからの中心距離に基づいて前後方向にアルファブレンディングを有効にしてレンダリングされます。 |
DefaultMaterial.Screen | 色は反転乗算を使ってブレンドされ、より明るい結果が得られます。このブレンドモードは順序に依存しません。半透明のオブジェクトを使用していて、顔やモデルの並べ替えが異なるとポップが発生する場合は、スクリーンブレンドを使用するのが、ポップなしの結果を生成する1つの方法です。 |
DefaultMaterial.Multiply | 色は乗算を使ってブレンドされ、より暗い結果を生み出します。このブレンドモードも順序に依存しません。 |
Qt Quick 3D Architectureもご覧ください 。
bumpAmount : real
このプロパティは、bumpMap またはnormalMap のシミュレートされた変位量を制御します。 デフォルト値は、0 バンプ効果を無効にします。範囲は [0, 1] です。
bumpMap : Texture
このプロパティは、マテリアルの表面全体の細かいジオメトリの変位をシミュレートするためのグレースケールのテクスチャを定義します。明るいピクセルは盛り上がった領域を示します。効果の量はbumpAmount プロパティで制御します。
注意: バンプマップはモデルのシルエットには影響しません。
diffuseColor : color
このプロパティは、マテリアルの拡散色(アルベド)を決定します。ディフューズカラーを黒の色合いに設定すると、純粋なスペキュラーマテリアル(金属や鏡など)が作成されます。
diffuseLightWrap : real
このプロパティは、半透明マップのライトラップの量を決定します。値が 0 の場合、ライトはまったくラップされず、値が 1 の場合、ライトはオブジェクトの全周にラップされます。
diffuseMap : Texture
このプロパティは、マテリアルに適用する Texture を定義します。透明度を持つ Texture を使用すると、アルファチャンネルも不透明度マップとして適用されます。
emissiveFactor : vector3d
このプロパティは、このマテリアルの自己発光の色を決定します。エミッシブマップが設定されている場合、x、y、z成分はそれぞれテクスチャのR、G、Bチャンネルの係数(乗数)として使用されます。デフォルト値は (0, 0, 0) で、エミッシブの寄与がまったくないことを意味します。
注意: lightingMode をDefaultMaterial.NoLighting に設定すると、エミッシブファクタがシーンに影響を与えないことを意味します。
emissiveMap : Texture
このプロパティは、発光色の強度を指定するために使用する RGB テクスチャを設定します。
emissiveFactorも参照してください 。
fresnelPower : real
このプロパティは、かすめるような角度で見られる反射を維持しながら、正面からの反射(表面を直接見る)を減少させます。デフォルト値は0 、フレネル効果を無効にします。
indexOfRefraction : real
このプロパティは、どの反射角度がfresnelPower の影響を受けるかを制御する。 デフォルトは1.45 。値は1.0 以上でなければなりません。
注意: 3.0 をはるかに超える ior を持つ材料は、世界中で知られていません。
lighting : enumeration
このプロパティは、このマテリアルを生成する際にどの照明方法を使用するかを定義します。
デフォルト値はDefaultMaterial.FragmentLighting
DefaultMaterial.FragmentLighting を使用する場合、ディフューズとスペキュラのライティングはレンダリングされた各ピクセルに対して計算されます。特定のエフェクト(フレネルやバンプマップなど)を動作させるにはDefaultMaterial.FragmentLighting が必要です。
DefaultMaterial.NoLighting を使用する場合、ライティングは計算されません。このモードは(予想通り)非常に高速で、ライティングで陰影をつける必要のないイメージマップを使用する場合に非常に効果的です。
| 定数 | 説明 |
|---|---|
DefaultMaterial.NoLighting | ライティングは計算されません。 |
DefaultMaterial.FragmentLighting | フラグメントごとにライティングが計算されます。 |
lineWidth : real
このプロパティは、ジオメトリがプリミティブタイプのラインまたはラインストリップを使用している場合に、レンダリングされるラインの幅を決定します。デフォルト値は 1.0 です。このプロパティは、三角形メッシュなど、他のタイプのジオメトリをレンダリングするときには関係ありません。
警告 基礎となるグラフィックスAPIによっては、1以外の線幅が実行時にサポートされない場合があります。その場合、幅の変更要求は無視されます。たとえば、以下のいずれでも幅の広い線はサポートされません:Direct3D、Metal、コアプロファイルコンテキストを持つOpenGL。
注意: 他のほとんどのマテリアルプロパティと異なり、線幅はblendMode と同様に、グラフィックスパイプラインオブジェクトにベイクインされています。したがって、異なる値を指定すると、新しいパイプラインオブジェクトを作成する必要があります。例えば、このプロパティをアニメーションさせることは可能ですが、避けるべきです。
normalMap : Texture
このプロパティは、材料の表面全体にわたる微細なジオメトリの変位をシミュレートするために使用されるRGB画像を定義します。RGBチャンネルはXYZ法線のずれを示します。効果の量は、bumpAmount プロパティによって制御されます。
注意: 法線マップはモデルのシルエットには影響しません。
opacity : real
このプロパティは、モデルとは別に、このマテリアルだけの不透明度を落とします。デフォルトは1.0 です。範囲は [0.0, 1.0] です。
opacityChannel : enumeration
このプロパティは、opacityMap から不透明度の値を読み取るために使用されるテクスチャチャンネルを定義します。 デフォルト値はMaterial.A です。
| 定数 | 説明 |
|---|---|
Material.R | テクスチャ R チャンネルから値を読み込みます。 |
Material.G | テクスチャ G チャンネルから値を読み込みます。 |
Material.B | テクスチャ B チャンネルから値を読み込みます。 |
Material.A | テクスチャAチャンネルから値を読み取る。 |
opacityMap : Texture
このプロパティは、マテリアルの異なる部分に対して異なる不透明度を制御するために使用されるテクスチャを定義します。
pointSize : real
このプロパティは、ジオメトリがプリミティブタイプのポイントを使用している場合に、レンダリングされるポイントのサイズを決定します。デフォルト値は 1.0 です。このプロパティは、三角形メッシュなど、他のタイプのジオメトリをレンダリングするときには関係ありません。
警告 1以外のポイントサイズは、アンダーライイング・グラフィックスAPIによっては実行時にサポートされない場合があります。例えば、1以外のサイズを設定しても、Direct 3Dでは効果がありません。
roughnessChannel : enumeration
このプロパティは、roughnessMap から粗さ値を読み取るために使用されるテクスチャチャンネルを定義します。 デフォルト値はMaterial.R です。
| 定数 | 説明 |
|---|---|
Material.R | テクスチャ R チャンネルから値を読み込みます。 |
Material.G | テクスチャ G チャンネルから値を読み込みます。 |
Material.B | テクスチャ B チャンネルから値を読み取る。 |
Material.A | テクスチャAチャンネルから値を読み取る。 |
roughnessMap : Texture
このプロパティは、マテリアルのスペキュラ粗さを制御するためのテクスチャを定義します。テクスチャが複数のチャンネル(RGBA)を含む場合、roughnessChannel プロパティを使用して正しいチャンネルを設定できます。
specularAmount : real
このプロパティは、スペキュラリティ(ハイライトと反射)の強さを制御します。デフォルト値は0 で、スペキュラリティを無効にします。範囲は [0.0, 1.0] です。
注意: このプロパティはspecularReflectionMap には影響しませんが、シーンのSceneEnvironment::lightProbe からの反射の量には影響します。
注意: メッシュが高解像度でない限り、シーンライトから良好なスペキュラハイライトを得るには、DefaultMaterial.FragmentLighting を使用する必要があるかもしれません。
specularMap : Texture
このプロパティは、マテリアルの表面全体のスペキュラの量と色を調整するための RGB テクスチャを定義します。これらの値はspecularAmount で乗算されます。
specularModel : enumeration
このプロパティは、シーン内のライトのスペキュラハイライトを計算するために使用される関数を決定します。
| 定数 | 説明 |
|---|---|
DefaultMaterial.Default | スペキュラライティングはデフォルトのライティングモデルを使用します。 |
DefaultMaterial.KGGX | スペキュラライティングはGGXライティングモデルを使用します。 |
specularReflectionMap : Texture
このプロパティは、マテリアルのスペキュラハイライトに使用する Texture を設定します。
これは通常、環境マッピングを実行するために使用されます。モデルが回転すると、マップは環境から反射しているように見えます。これが期待通りに動作するには、TextureのmappingMode 、Texture.Environmentに設定する必要があります。スペキュラ反射マップは、比較的低コストで高品質の外観を追加する簡単な方法です。
注: light probe をSceneEnvironment に関連付け、画像ベースのライティングに頼ることで、同様の環境反射エフェクトを実現できます。しかし、ライトプローブは概念的に異なり、性能に関しては、より高価なソリューションになる可能性があります。それぞれのアプローチには固有の用途があり、どちらを使うかはケースバイケースで決める必要があります。プロパティに設定される Texture に関して言えば、specularReflectionMap が有利です。なぜなら、制限がなく、sourceItem を介してQt Quick サブシーンからデータを取得するものを含む、すべてのタイプのテクスチャをサポートしているからです。
注意: 鮮明な画像はマテリアルを非常に光沢のあるように見せます。画像をぼかせばぼかすほど、マテリアルは柔らかく見えます。
Texture::mappingModeも参照して ください。
specularRoughness : real
このプロパティは、ライトから生成されるスペキュラハイライトのサイズと、一般的な反射の透明度を制御します。値が大きいほど粗さが増し、スペキュラハイライトが柔らかくなり、反射がぼやけます。範囲は [0.0, 1.0] です。デフォルト値は0です。
specularTint : color
このプロパティは、鏡面反射を調整するために使用される色を定義します。効果がない場合は白を使用します。
translucencyChannel : enumeration
このプロパティは、translucencyMap から半透明の値を読み取るために使用されるテクスチャチャンネルを定義します。 デフォルト値はMaterial.A です。
| 定数 | 説明 |
|---|---|
Material.R | テクスチャ R チャンネルから値を読み込みます。 |
Material.G | テクスチャ G チャンネルから値を読み込みます。 |
Material.B | テクスチャ B チャンネルから値を読み込みます。 |
Material.A | テクスチャAチャンネルから値を読み取る。 |
translucencyMap : Texture
このプロパティは、マテリアルの背後からの光の透過率を制御するグレースケールのテクスチャを定義します。
translucentFalloff : real
このプロパティは、光源に対するオブジェクトの法線の角度に基づいて、半透明のフォールオフ量を定義します。
vertexColorsEnabled : bool
このプロパティを有効にすると、マテリアルはメッシュの頂点カラーを使用します。これらはマテリアルに指定された他の色と乗算されます。
© 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.