Threejs - 改变加载的3d对象的不透明度

时间:2018-03-19 04:06:28

标签: javascript three.js

我有一个3d对象模型加载到一个three.js场景中,如下所示:

var skull;

var loader2 = new THREE.ObjectLoader();

loader2.load(
    'skull.json', 
    function(object) {
        skull = object;
        scene.add(skull);
    }

);

我如何动态地使用模型的不透明度? 我查看了skull var,但我找不到任何与不透明度有关的内容。

我有什么想法可以做到这一点?

1 个答案:

答案 0 :(得分:0)

如果skull是网格(这取决于您的JSON文件的内容),那么改变skull.material.opacity = 0.5就足够了。通常,3D模型文件包含多个对象,在这种情况下,您需要遍历它:

skull.traverse((node) => {
  if (node.isMesh) {
    node.material.opacity = 0.5;
  }
});

查看THREE.MaterialTHREE.Object3D的文档。 three.js r91。