文章目录
- 效果
- 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