1.什么是深度
-
深度其实就是像素点在3D世界中距离摄像机的距离Z值,如下图:
Z轴代表的是深度
2.什么是深度缓冲区
- 深度缓冲区就是一块内存区域,专门存储着每个像素点(在屏幕上绘制的)深度值,深度值越大(Z值)越大,则离摄像机越远。
3.为什么需要深度缓冲区
- 如果我们先绘制一个距离较近的物体,在绘制距离较远的物体,则距离较远的位图因为后绘制,会把距离近的物体覆盖掉,如下面图片中先绘制红色再绘制黄色,那么红色图片就被覆盖掉了。有了深度缓冲区后,在绘制的时候只需要判断像素点的Z值(深度值),深度值大的(距离远)被覆盖,那么绘制物体的顺序就不那么重要了。实际上,只要存在深度缓冲区,OPenGL 都会把像素的深度值写入到缓冲区中,除非调用glDepthMask(GL_FALSE).来禁止写入。
网友评论