表面 着色器在 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"
  }
以下是它在具有两个已设置 灯光 的模型上的外观
