文章目录
- 效果
 - shader
 - 理解
 - 参考
 
效果

shader
Shader "Example/AlphaBlendBothSided"
{
  Properties
  {
    _Color ("Main Tint", Color) = (1, 1, 1, 1)
    _MainTex ("Texture", 2D) = "white" {}
    _AlphaScale ("Alpha Scale", Range(0, 1)) = 1
  }
  SubShader
  {
    Tags {"Queue" = "Transparent" "IgnoreProjector" = "True" "RenderType" = "Transparent"}
    // Pass的先后顺序有影响
    //渲染后面
    Pass
    {
      Tags{"LightMode" = "ForwardBase"}
      Cull Front
	  同透明图混合
    }
    //渲染前面
    Pass
    {
      Tags{"LightMode" = "ForwardBase"}
      Cull Back
      同透明图混合
    }
  }
  Fallback "Transparent/VertexLit"
}
 
理解
使用透明度混合关闭了深度写入,所以需要两个Pass,一个只渲染背面先执行,另一个后渲染之渲染前面。
 Cull <state> 设置 GPU 应该基于多边形相对于摄像机的方向剔除哪些多边形。
| 参数 | 值 | 功能 | 
|---|---|---|
| state | Back | 剔除背对摄像机的多边形。这称为背面剔除。这是默认值。 | 
| Front | 剔除面向摄像机的多边形。这称为正面剔除。使用它可翻转几何体。 | |
| Off | 不根据面朝的方向剔除多边形。可用于实现特殊效果,如透明对象或双面墙。 | 
Cull 可以写在SubShader下,也可以写在Pass下,作用域不同
参考
《Unity Shader 入门精要》冯乐乐
 ShaderLab 命令:Cull






![[linux网络编程]UDP协议和TCP协议的使用](https://img-blog.csdnimg.cn/direct/3570e8b110374bacbde0e04828dd6848.png)












