three.js能够加载处理过的三维模型数据,随着Cesium中可加载gltf的模型,three.js也能够进行支持,GIS开发:Threejs加载gltf模型,加载比较小的几个是没问题的,这里批量加载了一些量比较大的模型进行测试。
gltf是用blender进行导出的,直接导出的压缩格式,后缀名是.glb的。
- 模型数量有500多个
- 导出的.glb数据数据量总共1GB左右
- 使用nginx进行模型数据发布
- 循环使用THREE.GLTFLoader进行模型加载
- 模型全部加载
模型加载完成的效果:
模型的测试效果:
- 本机测试,数据传输速度还是比较快的,不到1分钟加载完成
- 加载的时候,场景移动有些卡顿,模型加载完成后,场景操作就比较流畅了
- 性能消耗比较大,chrome的内存已经占用到4GB多了
- 模型细节还原的真实度还是可以的
综述:
- 使用three.js,很容易添加场景的一些光照和阴影等效果;
- 制作一个小的三维场景还是可以的;
- 每个模型上的效果,还是有API进行控制的;
- 电脑性能还是要求比较高的,浏览器方面,还是chrome展现的最好;
- 重复的对象,比如树木、路灯等小部件,加载一次模型,复制对象,设置位置,这样效率会高很多;
- 优化方面,要想提高模型的加载量,可以根据视野动态加载、卸载模型数据,这要在基础上进一步开发;
- 模型细节、贴图优化也是一方面,但是这样会降低模型的展示效果;
- 功能方面,特别是gis方面,还是需要自己开发的。