【问题标题】:3D rendering - What is this problem called?3D 渲染 - 这个问题叫什么?
【发布时间】:2010-10-21 01:07:53
【问题描述】:

希望这次是一个明智的问题......

在图片中看到上半部分的纹理看起来还不错,但是下半部分(再旋转一点之后)纹理分解了,你可以看到形状的内部吗?多边形消失了?

这个问题叫什么?我需要知道,所以我知道在修复它时要寻找什么!

顺便说一下,我正在 Papervision 中执行此操作。如果您有机会知道解决方法(或者如果可能的话),如果您能指出正确的方向,我将允许您对自己感觉特别好。

谢谢大家!

【问题讨论】:

    标签: 3d rendering polygon papervision3d


    【解决方案1】:

    我们称之为“z-fighting”——但更常见的术语是 z-ordering 或 z-buffer 问题。

    我将尝试在没有图表的情况下解释问题 1st。

    3D 渲染器通过从后到前绘制多边形来工作。它通过将每个多边形分配给离散数量的位置之一来做到这一点。这适用于大多数场景。

    当没有足够的插槽来决定哪个多边形在另一个多边形前面时,您会遇到问题。

    要解决它 - 这将取决于您的应用程序,但有一些事情应该是所有人共有的:

    1. 确保世界的边界框尽可能小。
    2. 增加显示器的颜色深度。 OpenGL 和 Direct3D 都可以将 z 槽的数量与显示器的分辨率联系起来。
    3. 增加三角形的数量/减小三角形的大小。较小的三角形受此影响较小 - 但会降低性能,因为要绘制更多。

    如果您在 Windows 上运行,则应将桌面设置为最高颜色分辨率。您的应用程序可能会将其作为默认使用。

    您可以在 OpenGL 和 Direct3D 渲染之间切换吗?如果是这样,请尝试两者,其中一个可能会比另一个产生更好的结果。

    【讨论】:

    • z战!听起来像是在 F-Zero 之后玩的东西!我不能/还没有找到在 Papervision 中执行 1&2 的方法,但 3 确实有帮助。我的表现受到了打击,但我会在路上找到一些东西。谢谢大家!
    • 一个更好的术语是 z-buffer 问题。 2 可能独立于您的建模系统 - 您是否在 Windows 上运行?如果是这样,请将其设置在桌面级别,看看是否有帮助。
    • 我根本没有从头到尾的讨论...如果实际使用 Z 缓冲区,则无需对多边形进行排序。 Z 缓冲区将为每个像素解析哪个多边形应该在前面。除非两个多边形之间的差异太小,那就是你打 Z 的时候。
    • 从后到前的绘图是 z-buffer 的实际工作方式。现在这一切都隐藏在图形驱动程序中,但当我开始时,你必须知道这些事情。
    • ChrisF 回答了这个问题,好像 PV3D 使用硬件渲染器,但事实并非如此。 PV3D 是一个利用 Flash 架构的软件渲染器。没有 Z 缓冲区,因此没有 Z 战斗。选项 3 有所帮助,因为它是一种隐藏线性 tex 映射插值的方法。请参阅我的答案以查看它的实际效果。
    【解决方案2】:

    似乎是 Z 缓冲区问题,不知何故。不过,我不熟悉你在那里使用的东西,所以我可能帮不上什么忙。

    【讨论】:

      【解决方案3】:

      在我看来更像是出错的贴花,而不是 z-fighting。 Z-fighting 通常有一些锯齿状的边缘。该特定三角形的投影矩阵可能是错误的(考虑到问题的程度取决于相机位置)。

      【讨论】:

        【解决方案4】:

        它叫做linear mapping,它是一种在多边形上映射纹理的方法。但是这种方法没有进行透视校正,这会导致极端角度的纹理被破坏。

        线性纹理映射(上)和透视校正纹理映射(下)。

        唯一的解决方法是添加更多多边形,这会影响性能(参见this 演示)。

        【讨论】:

        • 谢谢!我认为这并不是真正的问题......使用 PV3D 的材料有一个精确的:布尔设置来解决这个问题......我尝试打开和关闭它,但问题仍然存在。
        • 你可以在这里看到如何克服这个问题的演示:papervision3d.org/demos/LinearMapping
        • 是的,这是一个不同的问题,但在处理 papervision 时也是一个重要的问题。
        【解决方案5】:

        您是否有多个重叠的纹理和/或多边形?

        从这里看,当您有完全重合的表面时,您会遇到问题,但浮点错误意味着您不能始终看到正确的表面。

        【讨论】:

        • 关闭...这是我半小时前遇到的问题!
        • 或者在同一个位置复制多边形/顶点,通常是在复制/粘贴之后^^
        猜你喜欢
        • 2017-02-11
        • 1970-01-01
        • 2021-10-09
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-01-20
        • 1970-01-01
        • 2019-11-11
        相关资源
        最近更新 更多