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 : Texture |
このプロパティは、マテリアルの表面全体の細かいジオメトリの変位をシミュレートするためのグレースケール 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 Texture を設定します。
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 に関連付け、画像ベースのライティングに頼ることで、同様の環境反射エフェクトを実現できます。しかし、ライトプローブは概念的に異なり、性能に関しては、より高価なソリューションになる可能性があります。それぞれのアプローチには固有の用途があり、どちらを使うかはケースバイケースで決める必要があります。プロパティに設定するテクスチャに関して言えば、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 |
このプロパティを有効にすると、マテリアルはメッシュの頂点カラーを使用します。これらは、マテリアルに指定された他の色と乗算されます。
©2024 The Qt Company Ltd. 本書に含まれるドキュメントの著作権は、それぞれの所有者に帰属します。 本書で提供されるドキュメントは、Free Software Foundation が発行したGNU Free Documentation License version 1.3に基づいてライセンスされています。 Qtおよびそれぞれのロゴは、フィンランドおよびその他の国におけるThe Qt Company Ltd.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。