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 ウィンドウのリファレンス