作者:姜尔
目录
一、倾斜数据概述
二、倾斜数据前期处理
1.大疆智图
1.1产品对接说明
1.2重建三维模型操作流程
1.3XML文件产出
二、iDesktop常规倾斜数据处理
1.生成配置文件
1.1操作步骤
1.2注意事项
1.3.基础数据问题
2.倾斜入库
2.1操作步骤
2.2参数详解
2.3注意事项
三、WebGL前端
1.加载倾斜方式
2.优化加载
一、倾斜数据概述
倾斜摄影(Oblique Image)是指由一定倾斜角度的航摄相机所获取的影像。倾斜摄影技术是国际测绘遥感领域近年发展起来的一项高新技术,通过在同一飞行平台上搭载多台传感器,同时从垂直、倾斜等不同的角度采集影像,获取地面物体更为完整的信息。
航空倾斜影像不仅能够真实地反应地物情况,而且还通过采用先进的定位技术,嵌入精确的地理信息、更丰富的影像信息、更高级的用户体验,极大地扩展了遥感影像的应用领域。该技术可广泛应用于应急指挥、国土安全、城市管理、房产税收等领域。
SuperMap iDesktop中不提供对倾斜数据前期处理的功能,因此建议在软件中使用前,先在第三方软件软件进行前期数据处理,如大疆智图、CC等软件,确认基础数据无误后再行进行后续处理。
二、倾斜数据前期处理
1.大疆智图
1.1产品对接说明
大疆软件产出的模型从成果格式有六种为OSGB\PLY\B3DM\OBJ\S3MB\I3S。其中,OSGB、OBJ、S3MB等格式,SuperMap iDesktop产品可支持进行后续倾斜数据处理以及发布。通常建议以OSGB格式从大疆智图中导出,以便进行后续处理、入库、以及前端调用;大疆支持导出S3MB格式的倾斜数据,但是不建议如此操作,大疆导出的S3MB格式数据并不是效果最好的,大疆只是根据这个格式输出了数据。相对来讲,使用iDesktop产品的倾斜入库功能,将OSGB格式转换为S3MB格式,不仅通过参数设置对倾斜数据进行了优化,有利于提升前端性能,而且更适合与SuperMap系列产品对接。
1.2重建三维模型操作流程
以下步骤为常见倾斜处理流程,分为六个步骤,详细步骤请参考软件详细说明。
- 新建任务-三维模型
- 导入图片
- 参数设置-定义坐标系
- 空三处理-像控点刺点
- 确定建模范围
- 三维建模
以下为详细步骤截图流程展示:
1.新建任务-三维模型;
2.导入图片;
3.参数设置-定义坐标系;
4.空三处理-像控点刺点;
5.确定建模范围;
6.三维建模。
1.3XML文件产出
大疆智图软件产出倾斜数据时会同时产出metadata.xml文件,其中包含倾斜坐标系以及位置信息,XML文件不能单独产出。由于iDesktop中倾斜数据生成配置文件需要XML文件作为元数据,因此建议对产出得metadata.xml元数据妥善保留以及备份。
二、iDesktop常规倾斜数据处理
常规对倾斜数据处理分为两个步骤:生成配置文件、倾斜入库。入库后的数据即可进行发布,以及后续前端调用数据等操作,此处暂不介绍非iDesktop平台倾斜处理。
1.生成配置文件
1.1操作步骤
1.以下示例在iDesktop官网10.2.1版本中进行。在iDesktop功能栏中找到三维数据-生成配置文件
2.在生成倾斜配置文件对话框中,设置源路径,根节点文件夹,如下图所示的Model则为根节点文件夹。元数据为倾斜数据同时产出的metadata.xml文件夹,以读取倾斜原始坐标系例如EPSG32649投影坐标系,和模型参考点XYZ坐标值。如倾斜生成配置文件后出现模糊,请考虑是否为新版本大疆智图产出osgb,同时确认下是否移除最外层的model.osgb后再进行生成配置文件,并再次进行浏览查看。
3.确定生成配置文件后,如目标路径默认,则可在根目录(Model文件夹)中找到配置文件(config.scp文件),如图所示。如存在多个tiles文件夹根目录为包含所有tiles的外层文件夹。
4.将配置文件添加到场景中浏览,右键场景-新建球面场景-图层管理器-普通图层-添加三维切片片缓存图层,选择配置文件(config.scp)的位置。添加图层后,双击即可定位到倾斜位置。
1.2注意事项
1.投影设置、模型参考点,读取自metadata.xml文件,如场景中定位倾斜数据时发现定位不到,可检查metadata.xml文件是否与倾斜数据配套,以及参考点单位是否与坐标系单位一致。
2.如没有metadata.xml文件需确认倾斜原始数据坐标系后,再投影设置倾斜数据原始坐标系。
3.如果倾斜原始坐标系为ENU,则要注意其坐标单位为度,强调在倾斜入库时的单位设置默认为米需要改为度。
1.3.基础数据问题
产出软件版本更新影响
此处举例大疆智图新旧版本产出数据对比(3.1左VS3.4右) ,大疆智图3.4版本会多生成三个粗糙层,需要移动出根节点目录后再进行生成配置文件,层级多的为新版本,层级少的是旧版本)。
2.倾斜入库
2.1操作步骤
2.2参数详解
1.参数设置:
S3M版本分为S3M1.0/2.0,如果使用的是10.21之前的WebGL包(SuperMap iClient3D)加载倾斜缓存文件,则倾斜入库时建议使用S3M1.0 ;S3M2.0的特点是支持PBR材质。
存储类型分为原始、紧凑,给倾斜数据加密,存储类型必须选择紧凑型;倾斜数据存储到MongoDB中,存储类型必须选择原始型。
几何压缩所需时间为:不压缩<常规压缩<Draco压缩。 纹理压缩格式支持五种压缩格式:WebP(PC/移动端,数据总量最少,耗内存,项目不占内存情况推荐)、DXT(PC,渲染性能好,数据总量增加,项目很占内存情况推荐DXT格式+CRN-DXT5加载效率很快)、CRN_DXT5(PC设备)、标准CRN、 KTX2.0,数据处理时间CRN_DXT5<标准CRN< KTX2.0,默认为DXT(PC设备)。
中心点坐标单位为生成配置文件时投影设置的坐标系单位,通常是投影坐标系单位为米,ENU坐标系此处为度。
纹理重映射用于解决部分倾斜数据中纹理拼接不合理的情况,提升性能,默认不勾选。
2. 法线:可设置算法类型、夹角阈值参数,当入库后浏览数据出现问题全部扭转以及其他问题时,可通过此参数设置调整。
3.合并根节点:当模型空间范围广、数据量庞大,使得模型被划分为很多个根节点,读取这些根节点花费时间较长导致加载模型较慢,此时,需要进行合并根节点来提升加载效率。“合并根节点”功能则是将相邻一定空间范围的根节点合并为一个根节点,即向上抽稀生成了一层更为粗糙的LOD层级。 当金字塔层级为1时,代表每4个根节点合并为1个,每合并一次,模型根节点数量减少约为原始数量的1/4。系统会控制模型最终的根节点数量,保证根节点在10个以内。当大于10个时,会继续合并,直至在10个以内。这适用于当模型空间范围广、数据量大,使得模型被划分为很多个根节点得情况,读取根节点花费得时间较长会导致加载缓慢,因此需要合并根节点来提升加载效率。除了倾斜数据合并根节点也适用于精模缓存,精模指的是精度极高得模型,从一般建模来讲,对面数无控制得模型即精模,通常来讲即所有得四面结构、造型、门窗、物体等都按比例建出的模型。可以参考iDesktop帮助文档中关于”合并根节点“以及”模型缓存合并根节点“等部分的介绍。帮助文档在官网 (http://support.supermap.com.cn/product/iDesktop.aspx)中’在线帮助‘旁边的”下载“中可以找到。
4. 模型单体化:设置叠加到模型上的矢量面所在的数据源、数据集和目标字段,矢量面通常为自行绘制的二维面,其目标字段为矢量面单体化的唯一标识。
5.设置目标坐标系:如原始坐标系为ENU,坐标单位为度,则新版本需要设置中心点坐标单位为度,对应目标坐标系为EPSG4326;如原始坐标系以及目标坐标系皆为地方坐标系,则需设置投影转换参数,此参数通常为地方测绘局保管;如原始坐标为投影坐标系,坐标单位设置为米,新版本需要设置目标坐标系为对应的地理坐标系,对应坐标系举例:
投影坐标系(EPSG Code ) | 地理坐标系(EPSG Code ) |
WGS_1984/Web_Mercator (3857) | GCS_WGS 1984 (4326) |
3Degree GK Zone 35 (CGCS2000)(4523) | GCS_China_2000 (4490) |
Xian_1980_3_DEGREE_GK_Zone_45N(2390) | Xi-An 1980 China(4610) |
GK Zone 14 (Beijing 1954)(21414) | Beijing 1954(4214) |
2.3注意事项
1.新版本10.2.x以后的iDesktop,在倾斜入库时需设置目标坐标系为原始倾斜数据坐标系对应的地理坐标系。此操作是为了修复老版本默认坐标系全部转为EPSG4326所带来的误差。
2.处理倾斜后的S3MB文件注意文件大小,如果超过5MB,则合并根节点不合理,需要调整合并根节点参数设置。入库后的combine.scp文件无法再进行合并根节点调整,只能重新入库调整。
三、WebGL前端
1.加载倾斜方式
WebGL中加载缓存一般有两种方式:
1.scene.open:使用此接口加载url ,可参考SuperMap官网示例BIM模型(http://support.supermap.com.cn:8090/webgl/examples/webgl/editor.html#S3MTiles_BIM)源码第104行:
例如:
var promise = scene.open("http://www.supermapol.com/realspace/services/3D-BIMbuilding/rest/realspace");
2.scene.addS3MTilesLayerByScp:加载url可参考官网示例动态单体化 (http://support.supermap.com.cn:8090/webgl/examples/webgl/editor.html#dynamicDTH)源码第56行所示:
例如:
var promise = scene.addS3MTilesLayerByScp('http://www.supermapol.com/realspace/services/3D-dynamicDTH/rest/realspace/datas/Config%20-%201/config', {
name: 'oblique photography'
});
2.优化加载
1.Layer.indexedDBSetting.isGeoTilesSave = true,优化加载,开启后浏览器容易崩溃,但是如果电脑性能不够好,会造成浏览器崩溃。一般不推荐。
2.S3MTilesLayer.clearMemoryImmediately =false,不及时释放内存,让模型不用重新加载。
3.开启空间索引,使用新版本10.2.X以及11i系列的iDesktop倾斜入库会自动创建空间索引不用手动创建。前端需要加些代码才能读到空间索引。例如:
var layer = scene.layers.find('Config');
layer._maxSkipNum = 256;
layer.LoadingPriority =Cesium.LoadingPriorityMode.UsePagedLodInfo;