XNA:3D中相互靠近的纹理正在剪裁

XNA:3D中相互靠近的纹理正在剪裁,3d,xna,textures,3d,Xna,Textures,我画了两个四边形,它们的位置几乎是相互平行的。唯一的区别是一个垂直方向比另一个高 当相机靠近四边形时,一切都画得很好 然而,如果我在更远的地方,这些图形似乎在互相争斗,看谁能先画。图形显示了正在发生的事情 黑色的地板与冰的纹理格斗。当摄影机从很远的距离缩放和旋转时,它会导致绘制随机线 我需要执行哪些步骤才能正确显示图形?这种情况是由深度值的分辨率限制引起的。有几件事可以避免它: 最有可能的情况是:您的“近”和“远”距离被设置为不必要的距离。如果远/近比率太大,则远剪裁平面附近的深度分辨率将很

我画了两个四边形,它们的位置几乎是相互平行的。唯一的区别是一个垂直方向比另一个高

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

然而,如果我在更远的地方,这些图形似乎在互相争斗,看谁能先画。图形显示了正在发生的事情

黑色的地板与冰的纹理格斗。当摄影机从很远的距离缩放和旋转时,它会导致绘制随机线


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

这种情况是由深度值的分辨率限制引起的。有几件事可以避免它:

  • 最有可能的情况是:您的“近”和“远”距离被设置为不必要的距离。如果远/近比率太大,则远剪裁平面附近的深度分辨率将很差。如果固定的近/远平面集无法处理所有可能的摄影机视图,则可以根据摄影机的位置或场景中的可见对象动态调整它们
  • 显而易见的是:尝试增加对象的间隔。有时,问题在于表面的距离太近
  • 作弊:可以添加深度偏差来调整问题对象。这是黑客和脆弱的,但它有时工作。在你的例子中,我猜地板应该比其他任何东西都要向下移动——所以如果你不想实际向下移动,你可以添加一个深度偏移
  • 作为最后手段:如果上述调整都不可能,您可能需要提高深度缓冲区的分辨率。我不知道XNA在这方面到底揭露了什么,所以我将把它作为一种可能性提出来

深度缓冲区使用的位深度是多少?