深度缓冲是强制性的

时间:2010-04-26 13:14:54

标签: directx

我只是想更好地理解directX管道。只是好奇是否必须使用深度缓冲才能使事情顺利进行。或者,如果您希望对象显示在彼此后面,它只是一个缓冲区。

2 个答案:

答案 0 :(得分:1)

深度缓冲区不是必需的。例如,在2D游戏中,通常不需要它。

如果您希望对象显示在彼此后面,但仍希望能够以任意顺序绘制它们,则需要深度缓冲区。

如果您从后面到前面绘制所有三角形,并且它们都没有相交,那么您可以不使用深度缓冲区。但是,通常更容易取消深度排序,无论如何都要使用深度缓冲区。

答案 1 :(得分:0)

Depth buffers不是强制性的。它们只是解决了以下问题:假设您在第一个绘制的相机附近有一个物体。然后,在绘制完之后,您想要绘制一个远离物体但与屏幕上附近物体位于同一位置的物体。没有深度缓冲区,它会被绘制在顶部,这看起来是错误的。使用深度缓冲区时,它会被遮挡,因为GPU会在已经绘制的其他东西后面找出它。

你可以关闭它们并处理它,例如。通过前后绘制(但这有其他问题通过深度缓冲解决),这在2D游戏中很容易。或者出于某种原因,您可能希望将过度抽取视为某种效果。但它绝不是基本渲染所必需的。