数据处理-倾斜摄影OSGB合并根节点
背景介绍
web三维地图引擎我们使用的是cesium,因此我们使用的倾斜摄影数据(OSGB)会转换成3DTiles(.b3dm)进行加载。如果倾斜摄影的范围很大或者数据量大,有不少的建筑物什么的,默认转换的3Dtiles数据在前台加载会很慢帧数很低不流畅。
目前解决的方法有以下几种:
- 压缩材质(减少数据大小,或降低显存占用大小,模型可能会由精度丢失)
- 顶点压缩(对数据进行顶点压缩,会丢失一定精度)
- 合并根节点(将倾斜层级合并为更粗糙一层,减少前台加载的节点数据,提升访问速度)
合并根节点的目的就是减少tile文件夹的数据,合并倾斜摄影数据,使浏览速度大幅提升。
金字塔层级:金字塔层级默认为1,表示tile的总数会减少到原来的四分之一,金字塔层级写2,表示tile的总数会减少到原来的十六分之一(按照4的N次方去计算);具体应该写几,要看最后生成的tile的总数大小保持在100-300是比较合适的,不宜过小或过大。
处理OSGB数据或处理3dtiles都可以,不过很多时候倾斜摄影转换的OSGB数据是由第三方公司提供,不能保证OSGB数据能否按照我们想的来。这里我们主要介绍如何在OSGB转3dtiles的过程中处理。
扩展
介绍如何在导出成OSGB的时候处理
Smart3d系列教程 | 倾斜模型合并根节点的方式及合并操作流程
环境准备
- 超图桌面处理软件SuperMap iDesktop 10i(倾斜摄影合并根节点(S3MB))
- osgb2cesiumApp(获取模型的原始坐标)
- IEarth工具(S3MB转B3DM)
合并根节点
倾斜摄影模型文件结构如下:


生成配置文件

选择倾斜摄影数据Data目录,设置模型中心点位置(这里的坐标系是wgs84经纬度坐标),默认会在Data目录下生成Config文件

这里的模型中心点位置如果我们不知道,我们可以使用osgb2cesiumlab来获取中心点转换成wgs84坐标系的坐标,再填入config中

合并根节点
在超图中找到倾斜入库按钮

选择添加之前生成好的config文件,设置输出目录,勾选合并根节点:金字塔层级:金字塔层级默认为1,表示tile的总数会减少到原来的四分之一,金字塔层级写2,表示tile的总数会减少到原来的十六分之一(按照4的N次方去计算)

设置好点击确定就可以等待数据转换完成了
S3MB转3dtiles格式
之前转好的数据是超图的S3MB格式,我们最终需要的是3dtiles格式数据,这里使用IEarth工具进行转换
以管理员运行打开IEarth_Qt.exe

选择转3D-Tiles工具,数据转换选择S3M->B3DM,源文件选择上面合并根节点目录下的.scp配置文件即可


点击导出后就会开始生成文件夹河json文件,并开始模型转换

转换完成后可以看到目录结构如下所示,cesium就可以加载了

总结
除了像我这样的通过几款软件转来转去,这么麻烦外,其他的软件有已经集成好的功能。
像cesiumlab就有,这里的重建顶层功能就可以实现,不过要会员才能用。

白嫖使我快乐


















