Unity shader ZTest

深度

深度就是该像素点在3d世界中距离摄像机的距离,深度值越大,则离相机越远

深度缓存

深度缓存中存着每个像素点的深度值,如果启用了深度缓冲区,在绘制每个像素之前,opengl会把它的深度值和已经存储在这个像素的值进行比较,如果新像素深度值小于原先像素深度值,则新像素值会取代原先的,反之,新像素值被遮挡

深度测试

在深度测试中,默认情况是将要绘制的新像素的z值与缓冲区中对应的z值进行比较,如果比深度缓冲中的值小,那么新像素的颜色值更新缓存中对应像素的颜色值

Unity流程

unity先将渲染队列中靠前的进行渲染,然后再执行ZWrite,ZTest。
1. ZWrite: On/Off,默认为On,代表是否要将像素的深度写入深度缓存中,
2. ZTest:Greater/GEqual/Less/LEqual/Equal/NotEqual/Always/Never/Off
默认为LEqual,代表如何将像素的颜色写入深度缓存中。

你可能感兴趣的:(Unity shader ZTest)