Version: Unity 6.0 (6000.0)
言語 : 日本語
ビルトインレンダーパイプラインのカスタムデータサーフェスシェーダーの例
ビルトインレンダーパイプラインのデカールサーフェスシェーダーの例

ビルトインレンダーパイプラインで最終色のモディファイアを使用するサーフェスシェーダーの例

“最終色のモディファイア” 関数を使用して、シェーダーで計算された最終的な色を修正できます。サーフェスシェーダーのコンパイルディレクティブ finalcolor:functionName と、Input IN, SurfaceOutput o, inout fixed4 color パラメーターをとる関数を使用します。

以下は、最終的な色に濃淡を追加する簡単なシェーダーです。表面のアルベド色に単に濃淡を適用するものではありません。この色合いは、ライトマップ、ライトプローブ、他の同様のソースなど、外部から取得するすべての色に作用します。

  Shader "Example/Tint Final Color" {
    Properties {
      _MainTex ("Texture", 2D) = "white" {}
      _ColorTint ("Tint", Color) = (1.0, 0.6, 0.6, 1.0)
    }
    SubShader {
      Tags { "RenderType" = "Opaque" }
      CGPROGRAM
      #pragma surface surf Lambert finalcolor:mycolor
      struct Input {
          float2 uv_MainTex;
      };
      fixed4 _ColorTint;
      void mycolor (Input IN, SurfaceOutput o, inout fixed4 color)
      {
          color *= _ColorTint;
      }
      sampler2D _MainTex;
      void surf (Input IN, inout SurfaceOutput o) {
           o.Albedo = tex2D (_MainTex, IN.uv_MainTex).rgb;
      }
      ENDCG
    } 
    Fallback "Diffuse"
  }
ビルトインレンダーパイプラインのカスタムデータサーフェスシェーダーの例
ビルトインレンダーパイプラインのデカールサーフェスシェーダーの例