物理ベースのマテリアルプロパティ

Kanzi のデフォルトの物理ベースマテリアルタイプには、マテリアルタイプを変更し、それらのマテリアルタイプを使用するマテリアルにプロパティを公開するために使用できるプリプロセッサ定義が付属しています。デフォルトのマテリアルタイプの変更、物理ベースシェーダー、および スマートマテリアルを使用する を参照してください。

このトピックでは、Kanzi のデフォルトの物理ベースマテリアルタイプで設定できるプリプロセッサ定義を一覧で示します。

ライト

マテリアルに使用するライトノードの種類ごとの数を設定するには、次のプリプロセッサ定義を使用します。

  • KANZI_SHADER_NUM_DIRECTIONAL_LIGHTS は、マテリアルに使用する Directional Light ノードの数を設定します。デフォルト値は 1 です。

  • KANZI_SHADER_NUM_POINT_LIGHTS は、マテリアルに使用する Point Light ノードの数を設定します。デフォルト値は 2 です。

  • KANZI_SHADER_NUM_SPOT_LIGHTS は、マテリアルに使用する Spot Light ノードの数を設定します。デフォルト値は 1 です。

マテリアルタイプのライト数の設定 を参照してください。

露出補正

露出補正は、レンダリングされた光の総量を制御することによってカメラの露出をエミュレートします。

露出補正の設定を有効にするには、KANZI_SHADER_USE_EXPOSURE の値を1に設定します。

この方法で、露出補正を設定する Exposure プロパティをマテリアルに公開します。

ガンマ補正

ガンマ補正は、デフォルトで、物理ベースのマテリアルタイプに対して無効になっています。

ガンマ補正を有効にするには、KANZI_SHADER_USE_GAMMA_CORRECTION の値を 1 に設定します。

トーンマッピング

トーンマッピングは、ハイダイナミックレンジ (HDR) 画像の外観を近似するために、ある色のセットを別の色のセットにマッピングします。

マテリアルタイプが使用するトーンマッピングアルゴリズムを設定するには、次のいずれかのプリプロセッサ定義の値を1に設定します。

  • KANZI_SHADER_TONEMAP_ACES は、Krzysztof Narkowicz による近似された ACES (Academy Color Encoding System) フィルミックトーンマッピングカーブを有効にします。

  • KANZI_SHADER_TONEMAP_FILMIC は、Jim Hejl と Richard Burgess-Dawson によるフィルミックトーンマッピングを有効にします。

  • KANZI_SHADER_TONEMAP_LINEAR はリニアトーンマッピングを有効にします。

  • KANZI_SHADER_TONEMAP_REINHARD はラインハルトトーンマッピングを有効にします。

    Kanzi の物理ベースのマテリアルタイプは、デフォルトでこのトーンマッピングアルゴリズムを使用します。

  • KANZI_SHADER_TONEMAP_UNCHARTED は、John Hable によるUncharted 2のフィルミックトーンマッピングを有効にします。

アルファモード

マテリアルのベースカラーでアルファチャンネルを使用できるようにするには、KANZI_SHADER_USE_ALPHA の値を1に設定します。

アルファマスキングを有効にするには、KANZI_SHADER_USE_ALPHA_CUTOFF の値を1に設定します。

この方法で、Alpha Cutoff プロパティをマテリアルに公開し、アルファカットのしきい値を設定します。Kanzi は、アルファ値がしきい値未満のフラグメントを破棄します。

この表は、異なるアルファモードの設定を一覧にしています。

アルファモード

設定

オペイク (Opaque)

  • KANZI_SHADER_USE_ALPHA を 0 に

  • KANZI_SHADER_USE_ALPHA_CUTOFF を 0 に

ブレンド

  • KANZI_SHADER_USE_ALPHA を 1 に

  • KANZI_SHADER_USE_ALPHA_CUTOFF を 0 に

マスク

  • KANZI_SHADER_USE_ALPHA を 0 に

  • KANZI_SHADER_USE_ALPHA_CUTOFF を 1 に

頂点カラー

メッシュ内の各頂点は、オプションで色の値を格納することができます。

頂点カラーの使用を有効にするには、KANZI_SHADER_USE_VERTEX_COLOR の値を 1 に設定します。

ベースカラーテクスチャ (Base Color Texture)

次のプリプロセッサ定義は、ベースカラーテクスチャの使用を制御します。

  • マテリアルのベースカラーを含むテクスチャの使用を有効にするには、KANZI_SHADER_USE_BASECOLOR_TEXTURE の値を1に設定します。

    この方法で、マテリアルに対して、マテリアルのベースカラーマップを設定する Base Color Texture プロパティを公開します。ベースカラーマップは、誘電体材料の拡散反射色や金属材料の反射率を含むことができるRGBマップです。テクスチャから値をフィルタリングするには、Base Color Factor プロパティを使用します。

  • テクスチャ座標 kzTextureCoordinate0 と kzTextureCoordinate1 の間で Base Color Texture を選択できるようにするには、使用したいテクスチャ座標のセマンティックインデックスに KANZI_SHADER_USE_BASECOLOR_TEXTURE_COORDINATE_INDEX の値を設定します。

    例えば、セマンティックインデックスが1のテクスチャ座標を使用するには、値を1に設定します。

  • マテリアルのベースカラーを含むディテールテクスチャの使用を有効にするには、KANZI_SHADER_USE_BASECOLOR_TEXTURE_DETAIL の値を 1 に設定します。

    このようにして、マテリアルにこれらのプロパティを公開します:

    • Detail Base Color Texture は、マテリアルのベースカラーを含むディテールテクスチャを設定します。

    • Detail Base Color Factor はマテリアルのディテールベースカラーを設定し、Kanzi は Base Color Factor プロパティによって設定されたマテリアルのベースカラーとアルファブレンドします。

    • Detail Texture Tiling は、マテリアルのディテールテクスチャのタイルファクターを設定します。Kanzi は、この値をUVに掛け合わせて、すべてのディテールテクスチャプロパティに使用するための2番目のディテールUVセットを生成します。

    • Detail Texture Offset はマテリアルのディテールテクスチャオフセットを設定します。Kanzi はこの値をUVに加算し、すべてのディテールテクスチャプロパティに使用するための2番目のディテールUVセットを生成します。

  • テクスチャ座標 kzTextureCoordinate0 と kzTextureCoordinate1 の間で Detail Base Color Texture を選択できるようにするには、使用したいテクスチャ座標のセマンティックインデックスに KANZI_SHADER_USE_BASECOLOR_TEXTURE_COORDINATE_INDEX_DETAIL の値を設定します。

    例えば、セマンティックインデックスが1のテクスチャ座標を使用するには、値を1に設定します。

ノーマルマップ

次のプリプロセッサ定義は、法線マップの使用を制御します。

  • マテリアルの法線マップを含むテクスチャの使用を有効にするには、KANZI_SHADER_USE_NORMALMAP_TEXTURE の値を 1 に設定します。

    この方法で、マテリアルに対して Normal Texture プロパティを公開し、マテリアルの法線マップを含むテクスチャを設定します。Normal Scale プロパティを使用して、Normal Texture の強度を設定します。

  • Normal Texture のためにテクスチャ座標 kzTextureCoordinate0 と kzTextureCoordinate1 の選択を可能にするには、使用したいテクスチャ座標のセマンティックインデックスに KANZI_SHADER_USE_NORMALMAP_TEXTURE_COORDINATE_INDEX の値を設定します。

    例えば、セマンティックインデックスが1のテクスチャ座標を使用するには、値を1に設定します。

  • マテリアルの法線マップを含むディテールテクスチャの使用を有効にするには、KANZI_SHADER_USE_NORMALMAP_TEXTURE_DETAIL の値を1に設定します。

    このようにして、マテリアルにこれらのプロパティを公開します:

    • Detail Normal Texture は、マテリアルの法線マップを含むディテールテクスチャを設定します。

    • Detail Normal Scale は Detail Normal Texture の強度を設定します。

    • Detail Texture Tiling は、マテリアルのディテールテクスチャのタイルファクターを設定します。Kanzi は、この値をUVに掛け合わせて、すべてのディテールテクスチャプロパティに使用するための2番目のディテールUVセットを生成します。

    • Detail Texture Offset はマテリアルのディテールテクスチャオフセットを設定します。Kanzi はこの値をUVに加算し、すべてのディテールテクスチャプロパティに使用するための2番目のディテールUVセットを生成します。

  • 法線マッピングで明示的なバイノーマルの使用を有効にするには、KANZI_SHADER_USE_EXPLICIT_BINORMALS の値を1に設定します。明示的なバイノーマルの使用を有効にすると、シェーダーは頂点法線と頂点接線から頂点バイノーマルを再構築しません。

エミッシブテクスチャ (Emissive Texture)

次のプリプロセッサ定義は、エミッシブテクスチャの使用を制御します。

  • マテリアルから放出される光を含むテクスチャの使用を有効にするには、KANZI_SHADER_USE_EMISSIVE_TEXTURE の値を 1 に設定します。

    この方法で、マテリアルに対して、マテリアルから放出される光を含むテクスチャを設定する Emissive Texture プロパティを公開します。このテクスチャからの値をスケーリングするには、Emissive Factor プロパティを使用します。

  • テクスチャ座標 kzTextureCoordinate0 と kzTextureCoordinate1 の間で Emissive Texture を選択できるようにするには、使用したいテクスチャ座標のセマンティックインデックスに KANZI_SHADER_USE_EMISSIVE_TEXTURE_COORDINATE_INDEX の値を設定します。

    例えば、セマンティックインデックスが1のテクスチャ座標を使用するには、値を1に設定します。

  • マテリアルから放出される光を含むディテールテクスチャの使用を有効にするには、KANZI_SHADER_USE_EMISSIVE_TEXTURE_DETAIL の値を 1 に設定します。

    このようにして、マテリアルにこれらのプロパティを公開します:

    • Detail Emissive Texture は、マテリアルから放出される光を含むディテールテクスチャを設定します。

    • Detail Emissive Factor は、Detail Emissive Texture が放つ光の色を設定します。この色の露出を調整するには、Intensity (I) プロパティフィールドを使用できます。この色はローカルマテリアルのレンダリングに影響を与えますが、光は他のオブジェクトに投影されません。

    • Detail Texture Tiling は、マテリアルのディテールテクスチャのタイルファクターを設定します。Kanzi は、この値をUVに掛け合わせて、すべてのディテールテクスチャプロパティに使用するための2番目のディテールUVセットを生成します。

    • Detail Texture Offset はマテリアルのディテールテクスチャオフセットを設定します。Kanzi はこの値をUVに加算し、すべてのディテールテクスチャプロパティに使用するための2番目のディテールUVセットを生成します。

  • テクスチャ座標 kzTextureCoordinate0 と kzTextureCoordinate1 の間で Detail Emissive Texture を選択できるようにするには、使用したいテクスチャ座標のセマンティックインデックスに KANZI_SHADER_USE_EMISSIVE_TEXTURE_COORDINATE_INDEX_DETAIL の値を設定します。

    例えば、セマンティックインデックスが1のテクスチャ座標を使用するには、値を1に設定します。

メタリックラフネス素材

金属度と粗さに基づいてマテリアルを調整できるようにするには、KANZI_SHADER_USE_PBR_METALLIC_ROUGHNESS の値を1に設定します。これは Kanzi 物理ベースのマテリアルタイプのデフォルト設定であり、これらのプロパティをマテリアルに公開します。

  • Roughness Factor は、0から1のスケールでマテリアルの粗さを設定します。

    • 滑らかで光沢のある表面にするには、プロパティ値を0に設定します。

    • 粗い拡散面の場合、プロパティ値を1に設定します。

  • Metallic Factor は、材料のメタルネスを0から1のスケールで設定します。

    • 誘電体材料の場合、値を0に設定します。

    • 金属の反射特性を完全に再現するマテリアルの場合、値を1に設定します。

メタリックラフネス素材の外観を調整するために、メタリック、ラフネス、およびオクルージョンマップを使用できます。

メタリックマップ

次のプリプロセッサ定義は、メタリックマップの使用を制御します。

  • マテリアルにメタリックマップを含むテクスチャを使用できるようにするには、KANZI_SHADER_USE_METALLIC_TEXTURE の値を 1 に設定します。

    この方法で、メタリックマップを含むテクスチャを設定する Metallic Texture プロパティをマテリアルに公開します。

    Kanzi はテクスチャの青チャンネルからメタリックマップを読み取ります。同じテクスチャを使用して、マテリアルのオクルージョン、ラフネス、およびメタリックマップを設定することができます。

  • テクスチャ座標 kzTextureCoordinate0 と kzTextureCoordinate1 の間で Metallic Texture を選択できるようにするには、使用したいテクスチャ座標のセマンティックインデックスに KANZI_SHADER_USE_METALLIC_TEXTURE_COORDINATE_INDEX の値を設定します。

    例えば、セマンティックインデックスが1のテクスチャ座標を使用するには、値を1に設定します。

  • マテリアルにメタリックマップを含むディテールテクスチャの使用を有効にするには、KANZI_SHADER_USE_METALLIC_TEXTURE_DETAIL の値を 1 に設定します。

    この方法で、メタリックマップを含むディテールテクスチャを設定する Detail Metallic Texture プロパティをマテリアルに公開します。

  • Detail Metallic Texture のためにテクスチャ座標 kzTextureCoordinate0 と kzTextureCoordinate1 の選択を可能にするには、KANZI_SHADER_USE_METALLIC_TEXTURE_COORDINATE_INDEX_DETAIL の値をテクスチャ座標のセマンティックインデックスに設定します。

    例えば、セマンティックインデックスが1のテクスチャ座標を使用するには、値を1に設定します。

ラフネスマップ

次のプリプロセッサ定義は、粗さマップの使用を制御します。

  • マテリアルにラフネスマップを含むテクスチャを使用できるようにするには、KANZI_SHADER_USE_ROUGHNESS_TEXTURE の値を1に設定します。

    この方法で、Roughness Texture プロパティをマテリアルに公開し、粗さマップを含むテクスチャを設定します。

    Kanzi は、テクスチャの緑色チャンネルからラフネスマップを読み取ります。同じテクスチャを使用して、マテリアルのオクルージョン、ラフネス、およびメタリックマップを設定できます。

  • テクスチャ座標 kzTextureCoordinate0 と kzTextureCoordinate1 の間で Roughness Texture を選択できるようにするには、使用したいテクスチャ座標のセマンティックインデックスに KANZI_SHADER_USE_ROUGHNESS_TEXTURE_COORDINATE_INDEX の値を設定します。

    例えば、セマンティックインデックスが1のテクスチャ座標を使用するには、値を1に設定します。

  • マテリアルに粗さマップを含むディテールテクスチャの使用を有効にするには、KANZI_SHADER_USE_ROUGHNESS_TEXTURE_DETAIL の値を1に設定します。

    この方法で、Detail Roughness Texture プロパティをマテリアルに公開し、粗さマップを含むディテールテクスチャを設定します。

  • テクスチャ座標 kzTextureCoordinate0 と kzTextureCoordinate1 の間で Detail Roughness Texture を選択できるようにするには、使用したいテクスチャ座標のセマンティックインデックスに KANZI_SHADER_USE_ROUGHNESS_TEXTURE_COORDINATE_INDEX_DETAIL の値を設定します。

    例えば、セマンティックインデックスが1のテクスチャ座標を使用するには、値を1に設定します。

オクルージョンマップ

次のプリプロセッサ定義は、オクルージョンマップの使用を制御します。

  • マテリアルにオクルージョンマップを含むテクスチャを使用できるようにするには、KANZI_SHADER_USE_OCCLUSION_TEXTURE の値を1に設定します。

    この方法で、Occlusion Texture プロパティをマテリアルに公開し、オクルージョンマップを含むテクスチャを設定します。

    Kanzi はテクスチャの赤チャンネルからオクルージョンマップを読み取ります。同じテクスチャを使用して、マテリアルのオクルージョン、ラフネス、およびメタリックマップを設定できます。

  • Occlusion Texture のためにテクスチャ座標 kzTextureCoordinate0 と kzTextureCoordinate1 の選択を可能にするには、使用したいテクスチャ座標のセマンティックインデックスに KANZI_SHADER_USE_OCCLUSION_TEXTURE_COORDINATE_INDEX の値を設定します。

    例えば、セマンティックインデックスが1のテクスチャ座標を使用するには、値を1に設定します。

  • マテリアルのためのオクルージョンマップを含むディテールテクスチャの使用を有効にするには、KANZI_SHADER_USE_OCCLUSION_TEXTURE_DETAIL の値を1に設定します。

    このようにして、マテリアルにこれらのプロパティを公開します:

    • Detail Occlusion Texture は、オクルージョンマップを含むディテールテクスチャを設定します。

    • Detail Occlusion Strength は Detail Occlusion Texture の強度を設定します。

  • テクスチャ座標 kzTextureCoordinate0 と kzTextureCoordinate1 の間で Detail Occlusion Texture を選択できるようにするには、使用したいテクスチャ座標のセマンティックインデックスに KANZI_SHADER_USE_OCCLUSION_TEXTURE_COORDINATE_INDEX_DETAIL の値を設定します。

    例えば、セマンティックインデックスが1のテクスチャ座標を使用するには、値を1に設定します。

スペキュラグロスネスマテリアル

Kanzi は、スペキュラーカラーと光沢に基づいてマテリアルを調整できる KHR_materials_pbrSpecularGlossiness glTF拡張をサポートしています。

スペキュラーカラーと光沢に基づいてマテリアルを調整できるようにするには、次のように設定します:

  • KANZI_SHADER_USE_PBR_SPECULAR_GLOSSINESS を 1 に

  • KANZI_SHADER_USE_PBR_METALLIC_ROUGHNESS を 0 に

このようにして、マテリアルにこれらのプロパティを公開します:

  • Diffuse Color Factor はマテリアルのディフューズカラーを設定します。

  • Glossiness Factor は、材料の光沢を0から1のスケールで設定します。

    • 粗い拡散面の場合、プロパティ値を0に設定します。

    • 滑らかで光沢のある表面にするには、プロパティ値を1に設定します。

  • Specular Color Factor は、マテリアルのスペキュラーカラーを設定します。

拡散色、光沢、およびスペキュラ色マップを使用して、スペキュラ-グロスネス素材の外観を調整できます。

ディフューズカラー (Diffuse Color)

次のプリプロセッサ定義は、ディフューズカラーを制御します。

  • マテリアルのディフューズカラーを含むテクスチャの使用を有効にするには、KANZI_SHADER_USE_DIFFUSE_TEXTURE の値を 1 に設定します。

    この方法で、拡散色を含むテクスチャを設定する Diffuse Color Texture プロパティをマテリアルに公開します。Diffuse Color Factor プロパティを使用して、テクスチャから値をフィルタリングします。

  • テクスチャ座標 kzTextureCoordinate0 と kzTextureCoordinate1 の間で Diffuse Color Texture を選択できるようにするには、使用したいテクスチャ座標のセマンティックインデックスに KANZI_SHADER_USE_DIFFUSE_TEXTURE_COORDINATE_INDEX の値を設定します。

    例えば、セマンティックインデックスが1のテクスチャ座標を使用するには、値を1に設定します。

  • マテリアルの拡散色を含むディテールテクスチャの使用を有効にするには、KANZI_SHADER_USE_DIFFUSE_TEXTURE_DETAIL の値を 1 に設定します。

    このようにして、マテリアルにこれらのプロパティを公開します:

    • Detail Diffuse Color Texture は、マテリアルの拡散色を含むディテールテクスチャを設定します。

    • Detail Diffuse Color Factor はマテリアルのディテールディフューズカラーを設定し、Kanzi は Diffuse Color Factor プロパティによって設定されたマテリアルのディフューズカラーとアルファブレンドします。

  • テクスチャ座標 kzTextureCoordinate0 と kzTextureCoordinate1 の間で Detail Diffuse Color Texture を選択できるようにするには、使用したいテクスチャ座標のセマンティックインデックスに KANZI_SHADER_USE_DIFFUSE_TEXTURE_COORDINATE_INDEX_DETAIL の値を設定します。

    例えば、セマンティックインデックスが1のテクスチャ座標を使用するには、値を1に設定します。

グロスネスマップ

次のプリプロセッサ定義は、グロッシネスを制御します。

  • マテリアルに光沢マップを含むテクスチャを使用できるようにするには、KANZI_SHADER_USE_GLOSSINESS_TEXTURE の値を1に設定します。

    この方法で、光沢マップを含むテクスチャを設定する Glossiness Texture プロパティをマテリアルに公開します。

    Kanzi は、テクスチャのアルファチャンネルからグロスネスマップを読み取ります。テクスチャからのグロスネスをスケールするには、Glossiness Factor プロパティを使用します。

  • テクスチャ座標 kzTextureCoordinate0 と kzTextureCoordinate1 の間で Glossiness Texture を選択できるようにするには、使用したいテクスチャ座標のセマンティックインデックスに KANZI_SHADER_USE_GLOSSINESS_TEXTURE_COORDINATE_INDEX の値を設定します。

    例えば、セマンティックインデックスが1のテクスチャ座標を使用するには、値を1に設定します。

  • マテリアルに光沢マップを含むディテールテクスチャの使用を有効にするには、KANZI_SHADER_USE_GLOSSINESS_TEXTURE_DETAIL の値を1に設定します。

    この方法で、光沢マップを含むディテールテクスチャを設定する Detail Glossiness Texture プロパティをマテリアルに公開します。テクスチャから光沢をスケールするために、Glossiness Factor および Glossiness Texture プロパティを使用します。

  • Detail Glossiness Texture のためにテクスチャ座標 kzTextureCoordinate0 と kzTextureCoordinate1 の選択を可能にするには、使用したいテクスチャ座標のセマンティックインデックスに KANZI_SHADER_USE_GLOSSINESS_TEXTURE_COORDINATE_INDEX_DETAIL の値を設定します。

    例えば、セマンティックインデックスが1のテクスチャ座標を使用するには、値を1に設定します。

スペキュラーカラー (Specular Color)

次のプリプロセッサ定義は、スペキュラーカラーを制御します。

  • マテリアルのスペキュラーカラーを含むテクスチャの使用を有効にするには、KANZI_SHADER_USE_SPECULAR_TEXTURE の値を 1 に設定します。

    この方法で、Specular Color Texture プロパティをマテリアルに公開し、スペキュラーカラーを含むテクスチャを設定します。Specular Color Factor プロパティを使用して、テクスチャから値をフィルタリングします。

  • Specular Color Texture のためにテクスチャ座標 kzTextureCoordinate0 と kzTextureCoordinate1 の選択を可能にするには、使用したいテクスチャ座標のセマンティックインデックスに KANZI_SHADER_USE_SPECULAR_TEXTURE_COORDINATE_INDEX の値を設定します。

    例えば、セマンティックインデックスが1のテクスチャ座標を使用するには、値を1に設定します。

  • マテリアルのスペキュラーカラーを含むディテールテクスチャの使用を有効にするには、KANZI_SHADER_USE_SPECULAR_TEXTURE_DETAIL の値を 1 に設定します。

    このようにして、マテリアルにこれらのプロパティを公開します:

    • Detail Specular Color Texture は、マテリアルのスペキュラーカラーを含むディテールテクスチャを設定します。

    • Detail Specular Color Factor はマテリアルのディテールスペキュラカラーを設定し、Kanzi は Specular Color Factor プロパティによって設定されたマテリアルのスペキュラカラーとアルファブレンドします。

  • Detail Specular Color Texture のためにテクスチャ座標 kzTextureCoordinate0 と kzTextureCoordinate1 の選択を可能にするには、使用したいテクスチャ座標のセマンティックインデックスに KANZI_SHADER_USE_SPECULAR_TEXTURE_COORDINATE_INDEX_DETAIL の値を設定します。

    例えば、セマンティックインデックスが1のテクスチャ座標を使用するには、値を1に設定します。

  • スペキュラーアンチエイリアスを制御するには、KANZI_SHADER_USE_SPECULAR_ANTI_ALIASING の値を 1 に設定します。

    このようにして、マテリアルにこれらのプロパティを公開します:

    • Specular Anti-Aliasing Strength は、マテリアルに適用するスペキュラーアンチエイリアス効果の強さを設定します。0 はスペキュラーアンチエイリアスなし、1 は完全なスペキュラーアンチエイリアスを意味します。

    • Specular Anti-Aliasing Threshold は、マテリアルに適用するスペキュラーアンチエイリアス効果の上限を設定します。

クリアコートマテリアル

Kanzi は、KHR_materials_clearcoat glTF拡張をサポートしており、物理ベースのメタリックラフネス素材の上にクリアコートの層をシミュレートすることができます。これは、車両の塗装によく使用されます。

PhysicallyBasedClearCoat マテリアルタイプは、デフォルトでマテリアルの外側クリアコート層の粗さを設定することをサポートしています。

物理ベースのメタリックラフネス素材タイプにクリアコートを有効にするには、KANZI_SHADER_USE_CLEARCOAT の値を 1 に設定します。

このようにして、マテリアルにこれらのプロパティを公開します:

  • Clear Coat Roughness Factor はクリアコートの粗さを0から1のスケールで設定します。

    • 滑らかで光沢のある表面にするには、プロパティ値を0に設定します。

    • 粗い拡散面の場合、プロパティ値を1に設定します。

  • Clear Coat Strength Factor はクリアコートの強度を設定します。

クリアコートマテリアルの外観を調整するために、通常マップ、ラフネスマップ、およびストレングスマップを使用できます。

クリアコートノーマルマップ

次のプリプロセッサ定義は、クリアコートのノーマルマップの使用を制御します。

  • マテリアルにクリアコートノーマルマップを含むテクスチャを使用できるようにするには、KANZI_SHADER_USE_CLEARCOAT_NORMALMAP_TEXTURE の値を1に設定します。

    このようにして、マテリアルにこれらのプロパティを公開します:

    • Clear Coat Normal Texture は、マテリアルのクリアコート法線マップを含むテクスチャを設定します。

    • Clear Coat Normal Scale は Clear Coat Normal Texture の強度を設定します。

  • Clear Coat Normal Texture のためにテクスチャ座標 kzTextureCoordinate0 と kzTextureCoordinate1 の選択を可能にするには、使用したいテクスチャ座標のセマンティックインデックスに KANZI_SHADER_USE_CLEARCOAT_NORMALMAP_TEXTURE_COORDINATE_INDEX の値を設定します。

    例えば、セマンティックインデックスが1のテクスチャ座標を使用するには、値を1に設定します。

  • マテリアルにクリアコート法線マップを含むディテールテクスチャの使用を有効にするには、KANZI_SHADER_USE_CLEARCOAT_NORMALMAP_TEXTURE_DETAIL の値を1に設定します。

    このようにして、マテリアルにこれらのプロパティを公開します:

    • Detail Clear Coat Normal Texture は、マテリアルのクリアコート法線マップを含むディテールテクスチャを設定します。

    • Detail Clear Coat Normal Scale は Detail Clear Coat Normal Texture の強度を設定します。

  • テクスチャ座標 kzTextureCoordinate0 と kzTextureCoordinate1 の間で Detail Clear Coat Normal Texture を選択できるようにするには、使用したいテクスチャ座標のセマンティックインデックスに KANZI_SHADER_USE_CLEARCOAT_NORMALMAP_TEXTURE_COORDINATE_INDEX_DETAIL の値を設定します。

    例えば、セマンティックインデックスが1のテクスチャ座標を使用するには、値を1に設定します。

クリアコートラフネスマップ

次のプリプロセッサ定義は、クリアコートのラフネスマップの使用を制御します。

  • マテリアルにクリアコートラフネスマップを含むテクスチャを使用できるようにするには、KANZI_SHADER_USE_CLEARCOAT_ROUGHNESS_TEXTURE の値を1に設定します。

    この方法で、Clear Coat Roughness Texture プロパティをマテリアルに公開し、クリアコートの粗さマップを含むテクスチャを設定します。

    Kanzi はテクスチャのグリーンチャンネルからラフネスマップを読み取ります。

    Clear Coat Roughness Factor プロパティを使用して、テクスチャの粗さをスケーリングします。

  • Clear Coat Roughness Texture のためにテクスチャ座標 kzTextureCoordinate0 と kzTextureCoordinate1 の選択を可能にするには、使用したいテクスチャ座標のセマンティックインデックスに KANZI_SHADER_USE_CLEARCOAT_ROUGHNESS_TEXTURE_COORDINATE_INDEX の値を設定します。

    例えば、セマンティックインデックスが1のテクスチャ座標を使用するには、値を1に設定します。

  • マテリアルのディテールテクスチャにクリアコートラフネスマップを使用できるようにするには、KANZI_SHADER_USE_CLEARCOAT_ROUGHNESS_TEXTURE_DETAIL の値を1に設定します。

    この方法で、Detail Clear Coat Roughness Texture プロパティをマテリアルに公開し、クリアコートの粗さマップを含むディテールテクスチャを設定します。Clear Coat Roughness Factor および Clear Coat Roughness Texture プロパティを使用して、テクスチャから粗さをスケーリングします。

  • Detail Clear Coat Roughness Texture のためにテクスチャ座標 kzTextureCoordinate0 と kzTextureCoordinate1 の選択を可能にするには、使用したいテクスチャ座標のセマンティックインデックスに KANZI_SHADER_USE_CLEARCOAT_ROUGHNESS_TEXTURE_COORDINATE_INDEX_DETAIL の値を設定します。

    例えば、セマンティックインデックスが1のテクスチャ座標を使用するには、値を1に設定します。

クリアコートストレングスマップ

次のプリプロセッサ定義は、クリアコートの強度マップの使用を制御します。

  • マテリアルにクリアコート強度マップを含むテクスチャの使用を有効にするには、KANZI_SHADER_USE_CLEARCOAT_STRENGTH_TEXTURE の値を1に設定します。

    この方法で、クリアコート強度マップを含むテクスチャを設定する Clear Coat Strength Texture プロパティをマテリアルに公開します。

    Kanzi は、テクスチャの赤チャンネルからストレングスマップを読み取ります。

    Clear Coat Strength Factor プロパティを使用して、テクスチャからの強度をスケーリングします。

  • テクスチャ座標 kzTextureCoordinate0 と kzTextureCoordinate1 の間で Clear Coat Strength Texture を選択できるようにするには、使用したいテクスチャ座標のセマンティックインデックスに KANZI_SHADER_USE_CLEARCOAT_STRENGTH_TEXTURE_COORDINATE_INDEX の値を設定します。

    例えば、セマンティックインデックスが1のテクスチャ座標を使用するには、値を1に設定します。

  • マテリアルのクリアコート強度マップを含むディテールテクスチャの使用を有効にするには、KANZI_SHADER_USE_CLEARCOAT_STRENGTH_TEXTURE_DETAIL の値を1に設定します。

    この方法で、Detail Clear Coat Strength Texture プロパティをマテリアルに公開し、クリアコート強度マップを含むディテールテクスチャを設定します。Clear Coat Strength Factor および Clear Coat Strength Texture プロパティを使用して、テクスチャから強度をスケーリングします。

  • テクスチャ座標 kzTextureCoordinate0 と kzTextureCoordinate1 の間で Detail Clear Coat Strength Texture を選択できるようにするには、使用したいテクスチャ座標のセマンティックインデックスに KANZI_SHADER_USE_CLEARCOAT_STRENGTH_TEXTURE_COORDINATE_INDEX_DETAIL の値を設定します。

    例えば、セマンティックインデックスが1のテクスチャ座標を使用するには、値を1に設定します。

BRDFルックアップテーブル

双方向反射率分布関数 (BRDF) ルックアップテーブルは、光が素材からどのように反射するかに関する事前計算された情報を含むテクスチャです。

BRDFルックアップテーブルの使用を有効にするには、KANZI_SHADER_USE_BRDF_LOOKUP_TABLE の値を1に設定します。

この方法で、BRDF Lookup Table プロパティをマテリアルに公開し、BRDF ルックアップテーブルを含むテクスチャを設定するために使用できます。

平面反射

マテリアルが平面反射を受け取るようにするには、KANZI_SHADER_RECEIVE_PLANAR_REFLECTION の値を1に設定します。

マテリアルタイプには、平面反射または イメージベースのライティング のいずれかを有効にできますが、両方を有効にすることはできません。

イメージベースのライティング

イメージベースのライティングは、環境からのライティングをシミュレートするためにキューブマップテクスチャを使用します。イメージベースのライティングキューブマップテクスチャを使用する を参照してください。

画像ベースのライティングを有効にするには、KANZI_SHADER_USE_LIGHT_IMAGE_BASED の値を 1 に設定します。

この方法で、環境光を制御するためのこれらのプロパティをマテリアルに公開します。

  • Environment Ambient Texture は、拡散照明に使用するキューブマップテクスチャを設定します。

  • Environment Ambient Factor は Environment Ambient Texture の強度を設定します。

  • Environment Reflection Texture は、スペキュラーまたは反射照明に使用するキューブマップテクスチャを設定します。

  • Environment Reflection Factor は Environment Reflection Texture の強度を設定します。

Environment Reflection Texture のどのミップマップレベルを最大ラフネスに対応させるかを設定するには、KANZI_SHADER_ROUGHNESS_ONE_LOD_OFFSET プリプロセッサ定義の値を設定します。このプリプロセッサ定義の値は、最後のミップマップレベルから数えたミップマップレベルの数です。デフォルト値は 3 です。

Environment Reflection Texture は、互換性のあるラフネスマッピングで生成する必要があることに注意してください。外部ツールを使用してキューブマップを生成する場合は、最大ラフネスが正しいミップマップレベルに対応していることを確認してください。

マテリアルタイプには、イメージベースのライティングまたは 平面反射 のいずれかを有効にできますが、両方を有効にすることはできません。

シャドウ

マテリアルがさまざまなタイプのライトノードから影を受けられるようにするには、次のプリプロセッサ定義の値を 1 に設定します。

  • KANZI_SHADER_RECEIVE_DIRECTIONAL_SHADOW は、マテリアルが指向性ライトの影を受けることを可能にします。

  • KANZI_SHADER_RECEIVE_POINT_SHADOW は、マテリアルがポイントライトの影を受けることを可能にします。

  • KANZI_SHADER_RECEIVE_SPOT_SHADOW は、マテリアルがスポットライトの影を受けることを可能にします。

スキニング (Skinning)

PhysicallyBasedSkinned マテリアルタイプは、デフォルトで最大64本のボーンを持つメッシュのスキニングをサポートします。

スキニングのためにメッシュ内のボーンの数を設定するには、KANZI_SHADER_SKINNING_BONE_COUNT を使用します。

モーフィング

PhysicallyBasedMorph マテリアルタイプは、デフォルトで3つのターゲットを使用したモーフィングをサポートします。

モーフィングのモーフターゲットの数を設定するには、KANZI_SHADER_MORPH_TARGET_COUNT を使用します。

デバッグ出力

デバッグ出力を有効にするには、KANZI_SHADER_DEBUG_OUTPUT の値を 1 に設定します。

関連項目

マテリアルタイプの使用

マテリアルを使用する (Using materials)

マテリアルタイプとマテリアル

シェーダー