当使用Opengl绘制场景图时,我看到总有一个glClear(GL_DEPTH_BUFFER_BIT),这是为了什么目的?
答案 0 :(得分:9)
清除深度缓冲区。深度缓冲区是帧缓冲区的一部分,它使基元被其前面的其他基元遮挡。在不清除深度缓冲区的情况下,您将绘制上一个绘图的深度结构。
答案 1 :(得分:0)
当对象被绘制到屏幕时,应首先考虑屏幕(平面)和对象之间的距离。该距离值存储为Z值(Z缓冲区)。如果在平面和对象之间存在另一个对象B,则使用Z值来确定应该在该像素上绘制哪个对象。 因此,您应该了解为什么每次初始化程序时都需要清除Z缓冲区。这样,我们可以确保Z-buffer值中没有存储错误的值,这些值可能会被意外地绘制到屏幕上。