CesiumLab--i3dm生成
2020-03-06 14:53:04
919次阅读
0个评论
最后修改时间:2020-08-05 17:49:59

春节前最后一次更新,再增加一个重磅解决方案。
可以先看视频
CesiumLab的种树过程
再贴张图:



这个解决方案的目标是针对:
模型个数多、但是模型种类少的三维数据进行高效的组织和管理,常见的需求是森林树木、路灯、电塔、井盖、垃圾桶等城市管理的附属物。


说的更直接点,就是生成cesium的带LOD的i3dm格式的3dtiles。当然这个功能的核心难点在于如何计算最佳的空间索引,以及多级LOD模型如何 和 3dtiles的LOD切片匹配,幸好一切我们都调教好了,您只要使用就行了。


针对这个目标,为了不同需求,我们开发两种方案:离线预处理方式 和 实时生成方式。


一, 离线生成方式


在Lab2.1.5以上版本,左侧选择 【矢量点转i3dm】


    操作界面


输入文件:
shp格式的点(point)数据,每个点表示一个要放置模型的点位


    shp点数据


【常规】标签页内都是 角度,比例(大小),高度的产生方式(要么随机范围,要么从shp字段中来)
【字段列表】可以选择存储到i3dm中的属性
【随机偏移】对于树来说,最好有个位置偏移,这样更真实一些。
【地形高程】这个需要重点说明,从这个版本开始,我们已经改进了处理工具中(包括建筑物矢量面工具)地形高程的获取方式:1)支持从 pak 或者 散列的terrain文件目录中采样高度。2)采样高度不在是最近点,而是使用周边点的插值方式。


LOD模型目录:

image.png

详情参考我们这篇文章 CesiumLab多级LOD模型的建模规范


存储类型:
这个我们强烈建议使用紧凑格式,原因是这里会生成大量的小文件,紧凑生成效率更高,可能是1分钟和1小时的差异,所以为了你少等点时间,建议使用紧凑。关于紧凑格式我们在cesiumlab的帮助文档里已经有了clt格式介绍。


我们目前测试最大点位是33w个,处理生成的i3dm,在较远视角下基本满帧,平视最差视角下也正常能到10fps以上。实际这个点位个数没有上限,即便百万,甚至更多应该都能流畅加载(最终是否流畅还受限于LOD模型的制作程度,以及点位的分布密度,比如我们这个示例使用的雪松模型,树间隔是5米,实际上一个压力较大的测试)。


    远视角59fps


    最差视角13fps


离线方式总结:
a,输出为标准的cesium 3dtiles(i3dm)
b,目前工具登陆后免费使用
c,由于i3dm的渲染批次无法合并,所以在同一范围内有多种树,那么每种树请独立处理。
d,点位总量无上限


二,实时生成方式


请翻看上面视频,具体用法,我们以后再聊。只说下结论:
a,需要使用我们EarthSDK开发。
b,在内存中计算空间索引
c,支持一个图层有多个树种(多个模型库)
d,点位个数我们没限制,但是不建议1w以上的点位,会很卡。


最后欢迎来实验室里探讨



收藏 0 0

登录 后评论。没有帐号? 注册 一个。

西部世界

VIP会员 工作人员
  • 0 回答
  • 0 粉丝
  • 0 关注