threejs遍历模型的子对象;threejs中的3D模型指定位置变颜色例如设置的是红色但是显示的是黑色或者是白色;threejs给MeshPhysicalMaterial材质的物体修改颜色

效果:

threejs遍历模型的子对象;threejs中的3D模型指定位置变颜色例如设置的是红色但是显示的是黑色或者是白色;threejs给MeshPhysicalMaterial材质的物体修改颜色_第1张图片

 1.threejs遍历模型的子对象方法traverse
this.otherModel.traverse(function (child) {
      if (child instanceof THREE.Mesh) {
         。。。。
      }
});
2.threejs中的3D模型指定位置变颜色例如设置的是红色但是显示的是黑色或者是白色;
首先:需要打印确定一下要改变的模型的材质类型,不同的类型修改生效的方式不同(这里是MeshPhysicalMaterial)
console.log(child.material, 'child.material');

threejs遍历模型的子对象;threejs中的3D模型指定位置变颜色例如设置的是红色但是显示的是黑色或者是白色;threejs给MeshPhysicalMaterial材质的物体修改颜色_第2张图片

 3.threejs给MeshPhysicalMaterial材质的物体修改颜色
this.otherModel.traverse(function (child) {
    // 检查子对象的类型是否为Mesh,并且判断其位置是否满足要求
      if (child instanceof THREE.Mesh && child.name == '对象10112') {
          var material = new THREE.MeshPhysicalMaterial({ color: 0xff0000 });//红色
          child.material = material;
      }
});

你可能感兴趣的:(three.js,vue,javascript,开发语言,ecmascript)