【本系列文章系学习 唐福幸《Unity ShaderLab 新手宝典》的笔记,包含个人理解,如有错误欢迎批评指出
透明效果
一句话总结:对含有(半)透明物体的渲染:会先把(半)透明物体关闭深度测试,对不透明物体进行(由近及远)渲染,再把所有的(半)透明物体进行(由远及近)渲染
7.2 (半)透明物体的渲染顺序
(半)透明物体的渲染顺序就不能跟不透明的一样,因为若刚刚的B是(半)透明物体,那么显然A被B遮盖的部分也会被直接剔除,那么就达不到透明的效果了
因此Unity为(半)透明物体单独设定了一个渲染队列(“Queue”=“Transparent”):(半)透明物体在所有不透明物体绘制完成之后再进行绘制。
但是仅仅如此还是不够的,如图所示:深度测试是在顶点着色器和片元(段)着色器之间进行的,图像叠加是在最后一步Blending中完成的(也是到这一步才知道前方挡住自己的物体是否是透明的)