【问题标题】:Forge Viewer: How to Consolidate after Unconsolidate?Forge Viewer:取消合并后如何合并?
【发布时间】:2021-10-05 18:59:17
【问题描述】:

在 Forge Viewer 中加载 3D 房间(Revit 导出到 Navisworks 以获取房间几何图形)后,我想更改房间的颜色以反映 Revit 颜色方案,例如基于房间部门。

与其更改材质,不如设置主题颜色似乎是最好的选择:

viewer.setThemingColor( fragId, color );

但是,房间默认使用的材质不透明度为 0.1,主题颜色与透明度混淆,因此我想将材质不透明度更改为 1。

var roomMat = viewer.impl.getMaterials()._materials["model:1|mat:0"];
roomMat.opacity = 1;
roomMat.needsUpdate = true;
viewer.impl.invalidate(true);

如果我不调用'unconsolidate',则材料更改无效。

viewer.model.unconsolidate();

问题是在“取消整合”模型后,模型在环绕、缩放等时刷新率非常慢......

那么我怎样才能重新整合模型呢?我还没找到调用'consolidate'时的参数应该是什么

viewer.model.consolidate(?, ?, ?);

非常感谢任何帮助

【问题讨论】:

    标签: autodesk-forge


    【解决方案1】:

    它可以通过这个 API 调用来处理,但这个函数是一个私有 API,来自 impl,这意味着我们的工程团队将来可能会更改它。您可以自行承担使用它的风险。

    viewer.impl.consolidateModel(model)
    

    【讨论】:

    • 感谢 Eason,在调用 consolidateModel 后,模型的速度和以前一样快,但是一旦我围绕模型运行,材料变化就会丢失。我的电话如下,我错过了什么?查看器.model.unconsolidate(); var roomMat = viewer.impl.getMaterials()._materials["model:1|mat:0"]; roomMat.opacity = 1; roomMat.needsUpdate = true; viewer.impl.consolidateModel(viewer.model); viewer.impl.invalidate(true);
    • 如果我不调用 consolidateModel,那么 Material 更改仍然存在。
    猜你喜欢
    • 2015-05-10
    • 2017-05-27
    • 1970-01-01
    • 2016-12-31
    • 2016-01-17
    • 1970-01-01
    • 2021-02-04
    • 1970-01-01
    • 2016-02-13
    相关资源
    最近更新 更多