7

使用Opengl绘制场景图的时候,看到总有一个glClear(GL_DEPTH_BUFFER_BIT),这是什么目的?

4

2 回答 2

9

它清除深度缓冲区。深度缓冲区是帧缓冲区的一部分,它使图元被前面的其他图元遮挡。在不清除深度缓冲区的情况下,您将绘制到先前绘图的深度结构中。

于 2012-07-01T15:05:07.317 回答
0

将物体绘制到屏幕上时,首先要考虑屏幕(平面)与物体之间的距离。该距离值存储为 Z 值(Z 缓冲区)。如果平面和对象之间存在另一个对象B,则Z值用于确定应该在该像素上绘制哪个对象。所以你应该明白为什么我们每次初始化程序时都需要清空Z-buffer。这样,我们可以确保 Z-buffer 值中没有存储不正确的值,这些值可能会被意外绘制到屏幕上。

于 2013-03-24T15:25:31.997 回答