如果要渲染半透明物体,那么就需要用到透明度混合。
需要注意的有这几点:
1.设置标签:Tags { "Queue"="Transparent" "IgnoreProjector"="True" "RenderType"="Transparent"}
将物体放在合适的渲染队列中
2.关闭深度写入:ZWrite Off
具体原因见下面
3.Blend混合命令:Blend SrcAlpha OneMinusSrcAlpha
意思是:最终颜色 = 源颜色(该像素颜色) * SrcAlpha + 目标颜色(颜色缓冲中的颜色) * (1 - SrcAlpha)
AlphaBlend.shader
1 Shader "Custom/AlphaBlend"
2 {3 Properties4 {5 _MainTex ("Texture", 2D) = "white"{}6 _AlphaScale ("Alpha Scale", Range(0, 1)) = 1
7 }8 SubShader9 {10 Tags { "Queue"="Transparent" "IgnoreProjector"="True" "RenderType"="Transparent"}11
12 Pass13 {14 ZWrite Off15 Blend SrcAlpha OneMinusSrcAlpha16
17 CGPROGRAM18 #pragma vertex vert
1