1.1 深度缓冲(Depth buffer)

1.2 视域空间中的深度范围

1.3 消隐的方法
在把显示对象的每个面上的每一点的颜色值填入帧缓冲器相应单元前,要把这个点的深度值与Z-Buffer中的相应单元的值进行比较。只有前者小于后者时才能改变帧缓冲器的那一个单元的值,同时Z-buffer中相应的单元的值也要改变成这点的深度值;否则帧缓冲器相应的单元的值不变。
1.4 OpenGL中深度缓冲的函数
glEnable(GL_DEPTH_TEST);
void glDepthFunc(GLenum func);
void glDepthMask(GLboolean flag);
glDisable(GL_DEPTH_TEST);
当只想做深度比较,但不更新深度缓冲,则:
glEnable(GL_DEPTH_TEST);
glDepthMask(false);
在背景不变,前景变化的场景中,可以高效率的进行绘制,分为背景的预绘制,以及前景的实时绘制。
OpenGL 默认值为:
glDisable(GL_DEPTH_TEST);
glDepthMask(false);
glDepthFunc(GL_LESS);
只做深度比较,不更新深度缓冲,则:
glEnable(GL_DEPTH_TEST);
glDepthFunc(GL_ALWAYS);
glDepthMask(true);