暂时隐藏使用 sceneBuilder 添加的模型中包含的对象

问题描述 投票:0回答:1

我想暂时隐藏使用 SceneBuilder 扩展添加的模型中的对象。 但是,即使 changeMaterial 的结果为 true,我也没有在屏幕上看到任何变化,如下所示。

我还需要做任何额外的操作吗?

感谢您的帮助。

           const customModel = await (
              sceneBuilderExt
            ).addNewModel({
              conserveMemory: false,
              modelNameOverride: 'Custom Object Model',
            });

    const exstingMaterial = this.customModel.findMaterial(id);
    const newMaterial = new THREE.MeshPhongMaterial({
      ...exstingMaterial,
      visible: false
    });
    const res = this.customModel.changeMaterial(exstingMaterial, newMaterial);
    this.customModel.sceneUpdated();
    this.viewer.impl.invalidate(true, true, true);
autodesk-forge
1个回答
0
投票

您需要将新材质添加到场景生成器中:

modelBuilder.addMaterial('newMaterial', newMaterial);

那么,你能展示一下你的

changeMaterial
函数里面有什么吗?我不认为这是一个内置函数。

为什么不直接使用

viewer.hide([DBIDS-YOU-WANT-TO-HIDE], model)
model.hide()
(如果你想隐藏整个模型)?

隐藏对象(无重影)的另一种方法如下所述:完全隐藏查看器节点,无重影

© www.soinside.com 2019 - 2024. All rights reserved.