Autodesk Forge 查看器与 BIM360 查看器都是基于 WebGL 技术的 Web 3D 查看器,用于浏览建筑信息模型(BIM)等大型三维模型。但在加载大型模型时,它们的性能可能会受到影响。
针对 Autodesk Forge 查看器的大型模型加载问题,可以采用以下几种方案:
使用项目协同功能,将模型拆分为多个子模型,各自在 Forge 上加载,当需要查看大型模型时,再汇总展示。
为了减少模型匹配时间,可以使用 BIM 360 Model Coordination 服务。
采用与模型数据处理相关的优化技术,例如 LOD (Level of Detail) 技术。
此外,也可以考虑采用如下代码示例的措施来提高 Autodesk Forge 查看器的性能:
viewer = new Autodesk.Viewing.Viewer3D(container, config);
// 通过设置 ModelStructurePanel 禁用每层或分解可见性
let modelStructurePanel = viewer.modelstructurepanel;
modelStructurePanel.setLayerVisibleEnabled(false); // 关闭分层
modelStructurePanel.setIsolateEnabled(false); // 关闭隔离选中对
modelStructurePanel.setExplodeEnabled(false);
// 通过设置是否需要反向面省略
viewer.prefs.set('ignoreBackfaces', true);
// 切换 Autodesk.Viewing.Optimization: 明确地配置 Viewer 实例
Autodesk.Viewing.Optimization.Shaders.Texture.DXT.enabled = false;
Autodesk.Viewing.Optimization.Shaders.Texture.DXT.TEXTURE_FILTER = THREE.LinearMipmapLinearFilter;
代码中,viewer.modelstructurepanel
控制分层,排除某些部件或分解组件可见性。通过设置为 false,并关闭自动切换到层级选择,可以提高性能。
viewer.prefs.set('ignoreBackfaces', true)
能够减少反向面的渲染,提高效率。
最后,可以通过显式地设置 Autodesk.Viewing.Optimization
选项,来提供 Viewer 实例的性能,更好地处理大型 BIM 模型。