Version: Unity 6.0 (6000.0)
言語 : 日本語
ビルトインレンダーパイプラインでのマテリアルの検証と修正
ビルトインレンダーパイプラインの Material Validator ウィンドウのリファレンス

ビルトインレンダーパイプラインのマテリアルバリデーターと互換性のあるシェーダーを作成する

マテリアルバリデーターは、Unity のスタンダードシェーダーまたはサーフェスシェーダーを使用するマテリアルで動作します。ただし、カスタムシェーダーには「“META”」という名前のパスが必要です。ライトマップをサポートするほとんどのカスタムシェーダーには、すでにこのパスの定義が含まれています。詳細については、ライトマップとシェーダーに関するドキュメントを参照してください。

カスタムシェーダーとマテリアルバリデーターに互換性を持たせるには、以下の手順を実行します。

  1. 次のプラグマをメタパスに追加します。#pragma shader_feature EDITOR_VISUALIZATION
  2. UnityMetaInput 構造体で、マテリアルのスペキュラー色を SpecularColor という名前のフィールドに割り当てます。以下のコードサンプルを参照してください。

カスタムのメタパスの例

Pass
{
    Name "META" 
    Tags { "LightMode"="Meta" }

    Cull Off

    CGPROGRAM
    #pragma vertex vert_meta
    #pragma fragment frag_meta

    #pragma shader_feature _EMISSION
    #pragma shader_feature _METALLICGLOSSMAP
    #pragma shader_feature _ _SMOOTHNESS_TEXTURE_ALBEDO_CHANNEL_A
    #pragma shader_feature ___ _DETAIL_MULX2
    #pragma shader_feature EDITOR_VISUALIZATION

    float4 frag_meta(v2f_meta i) : SV_TARGET
    {
        UnityMetaInput input;
        UNITY_INITIALIZE_OUTPUT(UnityMetaInput, input);
        float4 materialSpecularColor = float4(1.0f, 0.0f, 0.0f, 1.0f);
        float4 materialAlbedo = float4(0.0f, 1.0f, 0.0f, 1.0f);
        input.SpecularColor = materialSpecularColor;
        input.Albedo = materialAlbedo;

        return UnityMetaFragment(input);
    }  
}
ビルトインレンダーパイプラインでのマテリアルの検証と修正
ビルトインレンダーパイプラインの Material Validator ウィンドウのリファレンス
Copyright © 2023 Unity Technologies
优美缔软件(上海)有限公司 版权所有
"Unity"、Unity 徽标及其他 Unity 商标是 Unity Technologies 或其附属机构在美国及其他地区的商标或注册商标。其他名称或品牌是其各自所有者的商标。
公安部备案号:
31010902002961