剔除
剔除是一种通过避免渲染背对观察者的几何体面来提高性能的优化措施。所有几何体都包含正面和方面。基于大多数都是封闭的事实,不需要绘制背面,也称为背面剔除。
深度测试
把所有物体都赋予一个深度值,离摄像机越近的物体深度值越小。深度小的物体可能把深度大的物体遮挡住。
在深度测试中,默认情况是将要绘制的新像素的z值与缓冲区中对应的z值进行比较,如果比深度缓冲中的值小,那么新像素的颜色值更新缓存中对应像素的颜色值
深度缓存
深度缓存中存着每个像素点的深度值,如果启用了深度缓冲区,在绘制每个像素之前,opengl会把它的深度值和已经存储在这个像素的值进行比较,如果新像素深度值小于原先像素深度值,则新像素值会取代原先的,反之,新像素值被遮挡
Unity关键字
Cull Back不绘制背离观察者的几何面
Cull Front不绘制面向观察者的几何面
Cull Off显示所有面
ZWrite On/off
控制是否将对象的像素写入深度缓存(默认开启),如果需要绘制纯色物体,便将此打开,如果要绘制半透明效果,关闭深度缓存。
ZTest
控制深度测试如何执行
Greater | 只渲染大于AlphaValue的像素 |
GEqual | 只渲染大于等于A |