首页 > 解决方案 > 如何在 Autodesk-viewer 中设置元素的透明性?

问题描述

我正在尝试设置模型元素的透明度,但我做不到。我正在寻找一种可以做到这一点的方法,但是我尝试过的方法不起作用。

标签: autodesk-viewer

解决方案


Viewer 并没有真正提供任何本机/内置功能来执行此操作,但 THREE.js 在图形操作方面始终是您的朋友,只要您可以在 Viewer 中引用目标元素的材料(通过其 dbid/nodeid):

var fragList = viewer.model.getFragmentList();    

var fragIds = []

model.getData().instanceTree.enumNodeFragments(
  dbid, (fragId) => {
   fragIds.push(fragId)
});

    fragIds.forEach((fragId) => {
      //grab the material
      var material = fragList.getMaterial(fragId);

      if(material) {
        //set transparency
        material.opacity = 0.5;
        material.transparent = true;
        //mark for update
        material.needsUpdate = true
      }
    })
  });
  viewer.impl.invalidate(true, true, true) //notify renderer to update
}

推荐阅读