ZWrite标签

来源:互联网 发布:手机淘宝客服点不开 编辑:程序博客网 时间:2024/06/14 20:09

参考网址:http://blog.csdn.net/lyh916/article/details/45317571
1)什么是深度
深度是像素点在3D世界中距离摄像机的距离,离摄像机越远,则深度值(z值)越大。
2)深度缓存
深度缓存中存储着准备要绘制在屏幕上的像素点的深度值。如果启用了深度缓冲区,在绘制每个像素之前,OpenGL会把像素的深度值和深度缓存的深度值进行比较。如果新像素深度值<深度缓存深度值,则新像素会取代原先的;反之,新像素值被遮挡,其颜色值和深度将被丢弃。哦哦,也就是越远的物体,其z值也大,但是会被丢弃不会画的,因为近的物体才能看得清。
3)深度测试
在深度测试中,默认情况将要绘制的新像素的z值与深度缓冲区中对应位置的z值进行比较,如果比深度缓存中的值小,那么用新像素值更新深度缓存中对应的像素的颜色值。
4)为啥需要深度
在不使用深度测试的时候,如果我们先绘制一个距离较近的物体,再绘制距离较远的物体,则距离远的物体因为后绘制,会把距离近的物体覆盖掉,这样的效果并不是我们希望的。而有了深度缓冲以后,绘制物体的顺序就不难么重要了,因为我们经过比较之后,决定是否画。

0 0