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





