threejs控制3d模型透明度

Posted 友人A

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了threejs控制3d模型透明度相关的知识,希望对你有一定的参考价值。

threejs的api没找到控制模型显隐的方案,于是有了下面的民间方法:
1.首先加载模型的时候给需要显隐材质加上一个特殊属性(name=\'dikuai\'),我这里是所有的mesh放在一个group里面方便做整体控制

const loader = new GLTFLoader()

loader.load(
\'/glb/aaa.glb\',
gltf => {
  this.models = gltf.scene
  this.scene.add(this.models)
  gltf.scene.traverse((child) => {
    if (child.isGroup) {
      child.name = \'dikuai\'
      this.groups.push(child);
    }
  });
},
undefined,
undefined
)

2.控制显隐的方法,找到name等于dikuai的材质,然后让他们的透明度设置为0或者1。

show(){
  let a = this.groups.find( item => item.name==\'dikuai\')
  a.children.forEach(element => {
    element.material.transparent = true
    element.material.opacity = 1
  });
},
hide(){
  let a = this.groups.find( item => item.name==\'dikuai\')
  a.children.forEach(element => {
    element.material.transparent = true
    element.material.opacity = 0
  });
},

3.原创作者:

以上是关于threejs控制3d模型透明度的主要内容,如果未能解决你的问题,请参考以下文章

threejs加载3d模型 怎样控制鼠标点击选中某个模型

threejs加载3d模型 怎样控制鼠标点击选中某个模型

ThreeJS 不显示 dae 3D 模型

使用fabric js canvas作为threejs 3d模型纹理

3d模型一般怎么导入到到Threejs中使用

Threejs collada 3D模型在某些角度无法正确渲染