我想设置我从blender导入的网格的不透明度。
var weapons = imported_scene.getObjectByName("weapons");
weapons.material.opacity = 0.5;
weapons.material.transparent = true;
问题:此网格的材质也用于另一个网格,因此其他网格也会获得不透明度。
原因:我在Blender中创建了一个场景(有两个网格物体)。导出的JSON将与ObjectLoader一起导入。两个网格都出于性能原因使用相同的纹理文件。
有什么办法吗?
非常感谢!
答案 0 :(得分:3)
你需要制作两种材料才能使一种材料透明而另一种材料不透明,但你可以在不加载相同纹理文件两次的情况下完成这项工作。最简单的方法是克隆材料:
var weapons = imported_scene.getObjectByName("weapons");
weapons.material = weapons.material.clone();
weapons.material.opacity = 0.5;
weapons.material.transparent = true;
见THREE.Material docs。 three.js r89。