Cesium中简单的LOD动态加载大量三维模型
Cesium中提供了三维模型加载API,但是很显然一般三维场景的模型成千上万,如果单纯采用默认的三维模型加载方案会出现浏览器吃不消致使崩溃或者高延迟低帧率等影响正常可视化交互的问题。诚然官方团队已经开始了一个号称革新技术的3Dtiles的三维模型批量加载处理方案,但目前其一直还在开发中,而且也还没有看到一个数据处理项目,当然github上的相关分支中也能看到运行不错的例子了。从一个公司或者一个团队自己的应用开发角度出发,能够拥有自己可以控制的三维模型加载方式的好处是不言而喻的,一方面可以很好的做到业务流程的控制,另方面显然的对自己的业务数据也有一定的保密作用。3Dtile的实施方法其实就是为批量模型加载添加一个快速索引和数据集的整体性描述,从而减少渲染循环中需要处理的实体数据量,最终实现三维模型加载效率的提升。
在最近闲暇时完成了简单的LOD动态加载大量三维模型核心代码扩展。目前单纯采用的是R树索引,支持动态数据的加入和剔除,可配置为无缓存和缓存两种模式,无缓存模式是动态调度数据并剔除视野范围内的数据的,这样的好处是减低Cesium在加载范围三维模型时的资源消耗,当然这样数据资源的释放会增加网络负担和因为数据加载带来的数据延迟;为了能更好的节省网络开销和一定程度上提高数据的交互能力,本扩展也支持缓存模式,即数据一经加载其所占资源并不释放而只控制其数据的渲染与否。效果如下面几图展示。
这些图片截自于个人录制的LOD展示视频,实验数据是从某位朋友那里拿到的费城区域部分数据,大约有430+的模型,懒得上传到视频网上了,这里给一个百度网盘地址,有兴趣可以下载下来看下:http://pan.baidu.com/s/1boijkwn 当然也可以加入Cesium交流群:115883691里面的群共享文件中也有。如有兴趣或者相关疑问欢迎加我QQ:491453302或者关注我的微博:Web3DGIS 可了解个人和团队相关研究进展。
注意:很多朋友看了这个博客 以为我用的3DTiles 但是如果对Cesium 3DTiles技术比较清楚的朋友应该知道 这个博客发表时 Cesium官网虽然公开讨论过3DTiles但相关的工具是没有的 这个是我自己定义的加载机制 同理通过自定义的加载机制 我也成功流畅的加载了倾斜摄影测量三维模型(希望有时间能把这个整理下也发表个博文吧)
本人长期承接三维GIS可视化项目,提供3DTiles/大范围Gltf数据处理与加工服务
更多推荐
所有评论(0)