【问题标题】:Finding obstacles between 2 objects in forge viewer在 Forge 查看器中查找 2 个对象之间的障碍物
【发布时间】:2021-03-08 03:21:40
【问题描述】:

我的想法是确定两个物体之间是否有任何障碍

现在这个障碍也可能是其他物体。

例如,我需要找到两扇门,如果它们之间有桌子、椅子等物体。

检查障碍物的方向也应该朝向目标。

在我的想法中添加更多内容,我可以使用对象的 dbid 来执行上述操作吗 所以如果我提供 2 个对象的 dbids,我有什么办法可以得到其他对象。

我也尝试在中解释这一点

【问题讨论】:

    标签: autodesk-forge autodesk-viewer autodesk


    【解决方案1】:

    我写了一个example,它做了类似的事情,但你的情况有点棘手。在此示例中,我使用从 PointA 到 PointB 的 THREE.Raycaster 并查找/计算这两个点之间的所有对象。

    这种方法对于点对点方面来说既快又好。您的问题的复杂性是确定可以部分遮挡视线的各种形状的遮挡物体;如果部分遮挡视图,您仍然可以看到最终对象的一些顶点,但不是全部。这更像是一种 HLR 或光线追踪方法,需要大量时间来计算。 THREE.Raycaster 可以提供帮助,因为您仍然可以将网格作为参数传递,但这将是一个非常缓慢的过程,即使您使用查看器中的 BVH 树来消除该过程中的一些网格。

    另一种方法是编写自定义着色器以使用 GPU 为您计算,这样会更快。不幸的是,我没有准备好这样的例子。如果点对点方法足够好,下面的代码应该会有所帮助。

    我的例子的代码扩展位于here

    【讨论】:

      【解决方案2】:

      我编写了一个名为 ForgeFader 的示例应用程序,它使用光线投射来确定 RVT 模型中两点之间的墙数,两者都使用 Revit 桌面 API 和 Forge 查看器中的 three.js

      【讨论】:

        猜你喜欢
        • 2011-08-25
        • 2023-03-06
        • 1970-01-01
        • 1970-01-01
        • 2016-07-06
        • 2019-02-17
        • 2018-03-16
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多