threejs 大场景优化方案(代码层)
1、场景有大量重复模型,使用map来缓存,key可以是模型的url,value是模型
2、对于不经常变动的模型,比如场景地表模型,建筑模型这些,可以使用indexDB来缓存模型数据
3、使用lod来解决模型面比较多,场景操作卡顿,原理是利用相机和模型的距离来判断显示那个精度的模型,比如相机距离10m显示一个很精细的模型,100m的时候就显示一个方盒子,因为threejs每帧都在渲染场景数据这样可以明显减少面的渲染
4、场景的动画帧尽量少,而且功能结束后要及时关闭,尽量复用
5、对场景change事件、鼠标悬浮等实时触发的事件加防抖,等不操作后在执行
6、如果循环中存在射线测量,把射线实例化提到外部,不要循环创建实例
7、要查找场景模型,尽量建模时候都放在map中,不要使用属性key查找,因为会遍历整个场景
代码后面再补-