可以使用“最终颜色修改器”函数来修改由着色器在 GPU 上运行的程序。 更多信息
参见 术语表计算的最终颜色。表面着色器用于内置渲染管线的着色器编写的一种简化方法。 更多信息
参见 术语表编译指令finalcolor:functionName
用于此目的,它使用一个函数,该函数采用Input IN, SurfaceOutput o, inout fixed4 color
参数。
这是一个简单的着色器,它将色调应用于最终颜色。这与仅将色调应用于表面漫反射颜色不同:此色调也将影响来自光照贴图预渲染的纹理,其中包含场景中静态对象上的光源效果。光照贴图叠加在场景几何体上以创建照明效果。 更多信息
参见 术语表、光探针光探针存储有关光线如何穿过场景空间的信息。在给定空间内排列的光探针集合可以改善该空间内移动对象和静态 LOD 场景的照明。 更多信息
参见 术语表和其他类似额外来源的任何颜色。
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"
}