0

我正在绘制两个几乎彼此同时定位的四边形。唯一的区别是一个垂直高于另一个。

当相机靠近四边形时,一切都很好。

但是,如果我离得更远,就好像图形在互相争斗,看谁能先画。图形显示正在发生的事情。

地板,黑色,与冰质地交战。当相机从远处缩放和旋转时,它会导致绘制随机线。

黑线不应该在那里

我需要执行哪些步骤才能正确显示图形?

4

1 回答 1

2

这种事情是由深度值的分辨率限制引起的。您可以采取一些措施来避免它:

  • 最有可能的是:您的“近”和“远”距离被设置得不必要的远。如果远近比太大,则远裁剪平面附近的深度分辨率会很差。如果一组固定的近/远平面无法处理所有可能的相机视图,您可能会考虑根据相机的位置或场景中的可见对象动态调整它们。
  • 显而易见:尝试增加对象的分离。有时问题是表面被简单地指定得太靠近。
  • 作弊:您可以添加深度偏差来调整问题对象。这是hacky和脆弱的,但它有时会起作用。在你的情况下,我猜地板应该比其他任何东西都更深 - 所以如果你不想真正将它向下移动,你可以添加一个深度偏差。
  • 作为最后的手段:如果上述调整都不可行,您可能需要增加深度缓冲区的分辨率。我不确切知道 XNA 在这方面暴露了什么,所以我只是将其作为一种可能性来提及。
于 2012-08-17T02:02:47.793 回答