glClear的目的是什么(GL_DEPTH_BUFFER_BIT)

时间:2012-07-01 14:48:08

标签: opengl-es opengl-es-2.0

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

2 个答案:

答案 0 :(得分:9)

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

答案 1 :(得分:0)

当对象被绘制到屏幕时,应首先考虑屏幕(平面)和对象之间的距离。该距离值存储为Z值(Z缓冲区)。如果在平面和对象之间存在另一个对象B,则使用Z值来确定应该在该像素上绘制哪个对象。 因此,您应该了解为什么每次初始化程序时都需要清除Z缓冲区。这样,我们可以确保Z-buffer值中没有存储错误的值,这些值可能会被意外地绘制到屏幕上。