在原生的opengl中,所谓深度测试指的是,当前绘制指令里待绘制的所有点,其投影在屏幕上的前后覆盖关系是否受点的z坐标影响。
举同一帧内两条绘制指令的例子。
glenable(gl_depth_test)
glbegin()
绘制三角形A
glend()
gldsiable(gl_depth_test)
glbegin()
绘制三角形B(B的z坐标比A更远)
glend()
绘制B前面有gldisable(gl_depth_test)
所以B的绘制其与A的关系不再受z坐标影响,所以视口窗口里B会在A前面,如果我没有gldisable(gl_depth_test)这一句,那么A就会在B前面。
这跟什么colorbuffer,什么颜色缓冲区的关系扯得太远了。这都是固定管线时代就已经有的内容了……