Окончательный модификатор цвета Surface Shader пример во встроенном Render Pipeline
Можно использовать функцию «конечный модификатор цвета», которая будет модифицировать конечный цвет, рассчитанный директивой компиляции Shader.The Surface Shader. Для этого используется finalcolor:functionName, с функцией, которая принимает параметры Input IN, SurfaceOutput o, inout fixed4 color.
Вот простой Shader, который применяет оттенок к окончательному цвету. Это отличается от простого применения оттенка к цвету поверхности Альбедо: этот оттенок также повлияет на любой цвет, который поступает из Lightmaps, Light Probes и подобных дополнительных источников.
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"
}