在图片中看到上半部分的纹理看起来是否正常,但是下半部分(在旋转一点之后)纹理分解了,你可以看到形状的内部?多边形已经消失了吗?
这个问题叫什么?我需要知道,所以我知道在修理它时需要注意什么!
顺便说一句,我在Papervision中这样做了。如果你有机会知道修复(或者是否有可能),如果你能指出我正确的方向,我会允许你对自己感觉特别好。
谢谢堆!
答案 0 :(得分:8)
我们称之为“z-fighting” - 但更常见的术语是z排序或z缓冲问题。
我会尝试在没有图表的情况下解释问题。
3D渲染器通过从后向前绘制多边形来工作。它通过将每个多边形分配给离散数量的位置之一来完成此操作。这适用于大多数场景。
如果没有足够的插槽可以决定哪个多边形位于另一个多边形之前,则会出现问题。
要解决它 - 它将取决于你的应用程序,但有许多事情应该是所有人共同的:
如果您在Windows上运行,则应将桌面设置为最高的颜色分辨率。您的应用程序可能会将其选为默认设置。
您可以在OpenGL和Direct3D渲染之间切换吗?如果是这样,那么试试两者,可能会比另一种更好。
答案 1 :(得分:1)
不知何故,似乎是一个Z缓冲区问题。我不熟悉你在那里使用的东西,所以我可能无法提供帮助。
答案 2 :(得分:1)
它被称为linear mapping,它是一种在多边形上映射纹理的方法。但是这种方法没有经过透视校正,导致在极端角度下纹理破碎。
线性纹理贴图(向上)和透视校正纹理贴图(向下)。
唯一的解决方法是添加更多多边形,这会影响性能(请参阅this演示)。
答案 3 :(得分:1)
在我看来,更像是贴花而不是z-fighting。 Z战斗通常有一些锯齿状的边缘。该特定三角形的投影矩阵可能是错误的(考虑到问题的严重程度取决于相机的位置)。
答案 4 :(得分:0)
你有多个叠加的纹理和/或多边形吗?
从这里看,当你有完全重合的曲面时,你会遇到问题,但浮点误差意味着你不能始终看到正确的曲面。