ThreeJS 中的不透明度,无需在材质上设置不透明度



我想设置从搅拌机导入的网格的不透明度。

var weapons = imported_scene.getObjectByName("weapons");
weapons.material.opacity = 0.5;
weapons.material.transparent = true;

问题:此网格的材质也用于另一个网格,因此另一个网格也获得不透明度。

原因:我在Blender中创建了一个场景(有两个网格(。导出的 JSON 将与对象加载器一起导入。出于性能原因,两个网格都使用相同的纹理文件。

有什么办法吗?

谢谢!

您需要制作两种材质才能使一种透明,另一种不透明,但您可以在不加载两次相同的纹理文件的情况下执行此操作。最简单的方法是克隆材料:

var weapons = imported_scene.getObjectByName("weapons");
weapons.material = weapons.material.clone();
weapons.material.opacity = 0.5;
weapons.material.transparent = true;

见三。材料文档。三.js R89。

最新更新