Shader "Custom/Outline Mask" {
  Properties {
    [Enum(UnityEngine.Rendering.CompareFunction)] _ZTest("ZTest", Float) = 0
  }

  SubShader {
    Tags {
      "Queue" = "Transparent+100"
      "RenderType" = "Transparent"
    }

    Pass {
      Name "Mask"
      Cull Off
      ZTest [_ZTest] //深度测试
      ZWrite Off //关闭深度写入
      ColorMask 0//启用对 R、G、B 和 A 通道的颜色写入

      //此通道中的所有像素都会通过模板测试并将值 1 写入模板缓冲区
      //防止后续着色器绘制到渲染目标的此区域或将它们限制为仅渲染到此区域
      Stencil {
        Ref 1
        Pass Replace//模版操作 将参考值写入缓冲区。
      }
    }
  }
}
