表面 着色器在 GPU 上运行的程序。 更多信息
参见 术语表 位于 CGPROGRAM..ENDCG
块内,就像任何其他着色器一样。区别在于
#pragma surface ...
指令来指示它是一个表面着色器。#pragma surface
指令为
#pragma surface surfaceFunction lightModel [optionalparams]
Shader "Example/Diffuse Simple" {
SubShader {
Tags { "RenderType" = "Opaque" }
CGPROGRAM
#pragma surface surf Lambert
struct Input {
float4 color : COLOR;
};
void surf (Input IN, inout SurfaceOutput o) {
o.Albedo = 1;
}
ENDCG
}
Fallback "Diffuse"
}
以下是它在具有两个已设置 灯光 的模型上的外观