如何修复具有大共享坐标的模型上的抖动几何

Posted

技术标签:

【中文标题】如何修复具有大共享坐标的模型上的抖动几何【英文标题】:How to fix shaking geometry on models with large shared coordinates 【发布时间】:2019-12-25 16:49:12 【问题描述】:

我正在 Forge 模型查看器中加载多个 Revit 模型。为了正确对齐它们,我使用了here 中提到的以下加载选项

var modelOptions = 
    sharedPropertyDbPath: doc.getPropertyDbPath(),
    globalOffset:  x: 0, y: 0, z: 0 ,
    applyRefPoint: true,
    isAEC: true
;

这适用于项目基点没有太大坐标的 Revit 文件。但是,如果 Revit 文件的项目基点坐标较大(例如 x:6698000、y:297500),则在旋转模型时会导致摇晃行为,甚至会导致三角视图混乱。

当您将placementTransform 设置为较大的坐标时,似乎也会发生此问题,如示例here 中所示

如何解决此类模型上的这种晃动行为?

【问题讨论】:

【参考方案1】:

您可以尝试使用 globaloffset 调整偏移量吗...

这是一个例子:

Model aggregating in viewer - coordinate issue

【讨论】:

调整偏移量确实可以解决抖动问题,但是在模型加载之前如何确定偏移量。我可以从加载的文档中以某种方式确定它吗? 不容易。在加载应用了偏移量的模型之前,它需要先侧加载和解码属性数据库,以获取全局原点。如果您可以选择将其保存到数据库或本地存储中,那么您可以在后续加载时应用它。

以上是关于如何修复具有大共享坐标的模型上的抖动几何的主要内容,如果未能解决你的问题,请参考以下文章

Forge Viewer 加载具有共享坐标的多个 Revit 模型

谷歌地球模型改造

图形几何计算机视觉中常用词汇

多视几何:摄像机模型的推导

Geomystery(几何迷城)的游戏引擎设计与实现

利用机器学习进行人脸468点的3D坐标检测,并生成3D模型