透明物体,一般情况下都是不进行深度写入的,并且是最后渲染。
假如透明物体先渲,又写深度,会使得透明物体显示不到后面的物体。
例如,如果一个物体是在其他物体前面的话,并且是先渲染,并且是写深度的话,那么,被这透明物体挡住的物体就渲染不出来了(假如所有物体都开深度测试),就会形成,透明的物体,实际上,不是 “透明”的(因为不可以透过 这个物体看 后面的物体)。
也是就,如果A在B的前面(相对于摄像机),A先渲,A写深度,那么,因为A在B的前面,先渲,那么,深度缓冲中记录了A的深度信息,当B准备渲染的时候,B会去进行深度测试,B会比较深度缓存中的信息,因为深度缓冲保存了A的信息,并且A在B的前面,所有,B在深度测试的时候,不能通过,所以,不能渲染B出来,
<1> 所以,如果要让透明物体看起来是“透明”,就不进行深度写入的,并且是最后渲染。
<2> 还可以的就是,把所有的透明物体都通过深度测试,ZTest Always,并且是最后渲染。