前几天在做一个Three.js 项目的时候,由于对象数量众多,需要用到 InstancedMesh 进行实例化
但是在修改实例的矩阵后,出现以下问题
1、模型有一部分消失,在特定视角模型又恢复原样
2、无法点击,但是在特定视角又可以点击,但是只能点击部分区域
3、距离拉远或者视角移动后,整个模型直接消失,特定视角又出现
解决办法
设置完实例矩阵后,计算边界,两句都要!
InstancedMesh.setMatrixAt(index, matrix); //修改矩阵
InstancedMesh.computeBoundingBox(); //计算矩形边界
InstancedMesh.computeBoundingSphere(); //计算球形边界
InstancedMesh.instanceMatrix.needsUpdate = true //通知渲染器需要更新