【问题标题】:near and far calculation in Autodesk Forge ViewerAutodesk Forge Viewer 中的远近计算
【发布时间】:2018-06-11 12:56:04
【问题描述】:

在 Forge Viewer 中,远近计算是在内部 updateCameraMatrices 方法中完成的。在该方法中,有一个最终的启发式方法可以更好地微调第 31320 行附近的近值:

// One more attempt to improve the near plane: make it 1/100,000 of the distance of the
// far plane, if that's higher.
// See https://wiki.autodesk.com/display/LMVCORE/Z-Buffer+Fighting for reasoning.
// 1e-4 is generally good below, but inside Silver Cross we get a lot of near clipping. So, 1e-5.
dMin = Math.max(dMin, dMax * 1e-5);

在我在查看器中加载的一些 BIM 模型中,我可以看到某些视角的 Z-fighting。如果我按照 cmets 中的说明将值从 1e-5 (1/100,000) 更改为 1e-4 (1/10,000),z-fighting 就消失了。 对于大型模型(如建筑物),这似乎也是一个更合适的值。它可能不太适合 3D CAD 模型等小规模模型。

如果我打算渲染的只是建筑规模的模型(来自 Revit、Navisworks 等),我可以安全地将此值更改为 1e-4 吗?

Forge Viewer 是否允许在其 API 中配置近/远计算?

【问题讨论】:

    标签: autodesk-forge


    【解决方案1】:

    恐怕你不应该直接在viewer3D.js 文件中修改这个值。不建议这样做。据我所知,也没有这样的 API 可以修改这个值。

    但是,您是否尝试过更改查看器的边界?这里可能有一个类似的案例你可以参考:Adding a skybox

    如果这与您的需求不符,您能否提供一些快照和更多详细信息向我展示此问题?如果您这样做,我很高兴将其传递给我们的工程团队进行进一步调查。如果无法公开发布,您可以将这些材料发送至forge.help@autodesk.com

    附注请从您发送给我们的任何内容中删除机密信息。

    【讨论】:

    • 如何更改查看器的边界?我确实检查了世界边界框(通过 THREE.js 绘制),它看起来非常准确。您能否在我的问题的评论中解释“银十字”是什么意思?
    • 在此博客中,添加天空盒的回答者 Philippe 已经解释了如何通过 viewer.navigation.fitBounds() 更改查看器边界,请查看:forge.autodesk.com/blog/…
    猜你喜欢
    • 2020-05-06
    • 2021-05-13
    • 2021-11-26
    • 2020-01-16
    • 2023-03-19
    • 2020-05-15
    • 2020-09-25
    • 2021-01-16
    • 2020-10-30
    相关资源
    最近更新 更多