unity3d 定制的表面着色器(Surface Shader)的标准输出结构是这种:
struct SurfaceOutput
{
half3 Albedo; //反射率
half3 Normal; //法线
half3 Emission; //自发光,用于增强物体自身的亮度,使之看起来好像能够自己发光
half Specular; //镜面
half Gloss; //光泽
half Alpha; //透明
};
Surface Shader compile directives 表面着色器编译指令
Surface shader is placed inside CGPROGRAM..ENDCG block, just like any other shader. The differences are:
表面着色器放在CGPROGRAM .. ENDCG块里面。就像其它的着色器一样。差别是:
It must be placed inside SubShader block, not inside Pass. Surface shader will compile into multiple passes itself.
它必须嵌在子着色器(SubShader)块里面。
而不是Pass块里面。
表面着色器( Surface shader)将在多重通道(multiple passes)内编译自己。