# 数据处理-倾斜摄影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系列教程 | 倾斜模型合并根节点的方式及合并操作流程 (opens new window)

# 环境准备

  1. 超图桌面处理软件SuperMap iDesktop 10i (opens new window)(倾斜摄影合并根节点(S3MB))
  2. osgb2cesiumApp(获取模型的原始坐标)
  3. IEarth工具(S3MB转B3DM)

# 合并根节点

倾斜摄影模型文件结构如下:

image-20220727000748313

# 生成配置文件

image-20220727000524472

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

image-20220727001237559

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

image-20220727142933179

# 合并根节点

在超图中找到倾斜入库按钮

image-20220727143300262

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

image-20220727143608987

设置好点击确定就可以等待数据转换完成了

# S3MB转3dtiles格式

之前转好的数据是超图的S3MB格式,我们最终需要的是3dtiles格式数据,这里使用IEarth工具进行转换

以管理员运行打开IEarth_Qt.exe

image-20220727144217638

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

image-20220727144345885

image-20220727145139781

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

image-20220727145001649

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

image-20220727145346076

# 总结

除了像我这样的通过几款软件转来转去,这么麻烦外,其他的软件有已经集成好的功能。

像cesiumlab就有,这里的重建顶层功能就可以实现,不过要会员才能用。

image-20220727145937401

白嫖使我快乐img

上次更新时间: 2022年7月27日星期三下午5点06分