Part1.概述
所谓透明度测试,就是根据一个不透明度的阈值,对需要进行透明度测试的物体进行筛选,通过筛选的片元将被正常渲染,否则会被直接剔除
透明度测试并没有真正实现半透明效果,它只是简单剔除了一些不透明度未到达阈值的片元
透明度测试是不需要关闭深度写入的
Part2.代码逐段分析
2.1属性快
Properties
{
_Color ("Color", Color) = (1,1,1,1)
_MainTex ("Main Tex", 2D) = "white" {}
_Cutoff("Alpha Cutoff", Range(0,1)) = 0.5
}
在属性块,我们有额外的参数需要定义,即Cutoff参数,它定义了剔除透明片元的阈值,范围在0~1,凡是不透明度小于这个阈值的片元,在透明度测试中将被剔除
Tags{"Queue" = "AlphaTest" "IgnoreProjector" = "True" "RenderType" = "TransparentCutout"}
在写Pass之前,我们需要设定几个重要tags,它们与透明度测试相关
Queue
这个tag设定了渲染顺序队列,Unity中默认的渲染队列如下: