XNA:3D中彼此接近的纹理是剪切

时间:2012-08-16 22:22:34

标签: 3d xna textures

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

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

然而,如果我离得更远,看起来好像图形正在互相争斗,看谁能先画画。图形显示了正在发生的事情。

地板,黑色,与冰纹理作斗争。当相机变焦并从远处旋转时,它会导致绘制随机线条。

The Black Lines aren't supposed to be there

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

1 个答案:

答案 0 :(得分:2)

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

  • 最有可能的是:您的“近距离”和“远距离”距离设置得不必要。如果远/近比率太大,则远剪裁平面附近的深度分辨率将很差。如果一组固定的近/远平面无法处理所有可能的摄像机视图,您可能会根据摄像机的位置或场景中的可见对象动态调整它们。
  • 显而易见:尝试增加对象的分离。有时候问题是表面的位置太紧密了。
  • 作弊:您可以添加深度偏差来调整问题对象。这是hacky和脆弱,但它有时是有效的。在你的情况下,我猜测地板应该比其他任何东西都要低 - 所以如果你不想实际向下移动,你可以添加一个深度偏差。
  • 作为最后的手段:如果无法进行上述调整,则可能需要增加深度缓冲区的分辨率。我不知道XNA在这方面究竟暴露了什么,所以我只是提到它是一种可能性。