在Forge Viewer中加载多个模型时出现内存不足错误

时间:2019-04-09 10:34:52

标签: javascript autodesk-forge

我正在一个有14个Navisworks(NWC)模型的项目中。我能够将复合模型加载到查看器中(这需要一些时间,但是可以工作)。

但是,当我将模型一个一个地加载到Viewer中时,在全部14个模型加载之前,我会出现内存不足的错误。文件总大小约为500MB。

我观察到浏览器崩溃之前(查看器在后台进行加载),查看器的响应速度非常快。

我怀疑这是多边形和几何总数的问题。我捆绑使用NOP_VIEWER.initDebugTools()扩展名,但似乎未显示所有模型的总数。似乎只显示第一个模型的细节。

  1. 有没有一种方法可以阻止Viewer在内存耗尽之前创建更多几何图形?
  2. 是否可以通过DebugTools扩展找到所有模型的统计信息?
  3. 还有另一种方法来计算已加载模型的多边形吗?

谢谢 班杜

1 个答案:

答案 0 :(得分:0)

  

有没有一种方法可以阻止Viewer在内存耗尽之前创建更多几何图形?

尝试在加载选项中限制内存消耗:

var config3d = {
    memory: {
        limit: 1024 // in MB
    }
};
var viewer = new Autodesk.Viewing.Viewer3D(container, config3d);

顺便说一句,默认限制为:

Desktop 600 MB
Mobile  195 MB
  

是否可以通过DebugTools扩展找到所有模型的统计信息?

不幸的是,内置DebugTools不适用于多个模型。

但这并不能阻止您按模型查询统计信息:

let modelArray = viewer.impl.modelQueue().getModels();
let targetModel = modelArray[index];
targetModel.getGeometryList() // retrieves geometry info about a specific model

您甚至可以烘烤自己的扩展以适合多种型号。

  

还有另一种方法来计算已加载模型的多边形吗?

model.getGeometryList().geomPolyCount