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"
  }
内置渲染管线中的自定义数据表面着色器示例
内置渲染管线中的贴花表面着色器示例