问题
在threejs项目中,可能会出现一种情况,明明修改的只是模型1的材质颜色,其他模型的材质颜色也跟着变了。
原因:
两个模型共享的同一个材质,对材质的任何修改都会同时反应在两个模型上。
两个mesh共享一个材质,改变一个mesh的颜色,另一个mesh2的颜色也会跟着改变
nesh.material 和mesh2.material都指向同一个material
三者等价:mesh.material、 mesh2.material、 material
修改了mesh的材质颜色后,mesh2的材质颜色也会跟着变
const mesh = new THREE.Mesh(geometry, material)
const mesh2 = new THREE.Mesh(geometry, material)
mesh.material.color.set(0xffff00);
因为两个模型指向的材质是同一个材质,所以对材质进行调整,两个模型的都会跟着变化。
当前内容为观看threejs视频教程 WebGL/Three.js前端高薪3D可视化 课程-模型材质和几何体属性-实践的学习笔记