自3月20日谷歌倾斜摄影OSGB转换工具V0.1版本发布以来,期间更新了V0.2、V1.0、V1.1、V1.2共4个版本,目前V1.2版本功能已经比较完善和稳定,实现了的当初产品规划的绝大部分功能。基于此,我将之前免费分享的数据重新下载和生成,提供给大家使用。下面我先对谷歌倾斜摄影工具OSGB的研发背景、技术路线版本更新等进行了详细说明和总结,然后再进行免费数据分享,具体见下文。
一、研发背景
在WebGL没兴起之前,OSGEarth是国内GIS公司使用最广泛的C端三维数字地球产品,而且牢牢占据着三维GIS平台的龙头老大位置,和今天Cesium在Web端三维数字地球地位一样。后来随着WebGL的兴起,CesiumJS应运而生,Cesium基于JavaScript和WebGL技术,旨在在现代Web浏览器中提供高性能的3D地球和地图渲染。不可否认,目前Cesium在Web端的统治地位,无人撼动,很多国内公司拥抱WebGIS,也选择了CesiumJS,因为它和OSG一样,有一个最大的优势:开源。
OSGB和3DTiles数据的比较,实际上也是OSG和Cesium的对比,虽然现在Cesium风生水起,但是OsgEarth使用仍比较广泛,因为C端OsgEarth在数据加载和渲染性能上,比WebGL的Cesium高不少,这个优势,目前Cesium无可替代。
在某些领域方向,对三维显示性能要求较高,Web端还无法满足性能要求,比如数字沙盘、虚拟现实,OSGB还是首选。目前OSGB开源数据很少,大家常见的是大雁塔OSGB样例数据,样例数据范围小,远远无法满足项目和产品演示要求。基于此,我将谷歌倾斜摄影数据转换成OSGB格式,为广大用户提供免费好用的OSGB数据,解决全球级OSGB格式倾斜摄影数据来源问题,这是开发谷歌倾斜摄影OSGB转换工具的研发背景。
二、技术路线选择
目前将谷歌倾斜摄摄影转成OSGB数据,常用的有以下几条路线:
1.将谷歌倾斜摄影数据转换为obj、fbx等格式,然后使用商业或开源工具,比如商业OSGBLab或者开源工具,能够将obj、fbx中间文件转换生成OSGB格式。这条技术路线具体如下:访问谷歌地球Web端官网,浏览到指定位置。通过RenderDoc软件,截取当前帧,保存当前帧信息;使用Blender软件打开保存的当前帧信息,转成fbx、obj格式的模型文件。这条技术路线全程需要人工参与,通过谷歌地球官网,浏览到指定位置,使数据级别尽可能高,然后通过RenderDoc截取当前帧,最后人工使用Blender打开,并保存成模型文件,然后使用工具转成OSGB文件。可以说流程相当复杂不说,全程都需要人工参与。
这条路线对于小范围数据生产没有问题,但是对于大场景数据,就无能为力了。谷歌全球倾斜摄影数据约400TB,受限于硬件性能,不可能一次性全下载下来生成obj/fbx格式,然后再切割生成OSGB;只能按块进行生成后,再进行拼接,这个过程全程需要人工参与,生产效率低,而且还存在分块数据拼接等由于数据精度导致的裂缝等问题。
2.使用转换工具,将3DTiles格式数据转换成OSGB,很可惜,目前市面上没有一款工具,能够将3DTiles格式完整转换成OSGB格式。
3.我在分析并预研了前面两种技术路线,在进行大规模OSGB数据生产的前提下,这两种技术路线走不通,无法满足数据生产需要,那直接将谷歌数据转换成OSGB格式是否可能呢,我经过探索,解决了这个问题,谷歌倾斜摄影数据能够直接转换成OSGB格式。
三、具体技术方案介绍
谷歌倾斜摄影数据OSGB转换工具,同谷歌倾斜摄影3DTiles数据生成方案一样,都是将谷歌倾斜摄影原始数据,直接转换成对应的格式,一步到位,OSGB瓦片生成方案如下:
通过解析谷歌原始数据,逐瓦片生成OSGB文件,并进行目录与文件格式组织,从而生成满足实际应用需要的OSGB数据。
四、版本更新介绍
下面分别对转换工具各版本进行详细说明:
1.V0.1版本
V0.1版本将谷歌倾斜摄影能够转成OSGB数据,数据目录与3DTiles数据格式相同,并且能够在大势智慧等软件中加载显示,但是会有瓦片缺失的问题,层级越高,缺失的瓦片就越多。
2.V0.2版本
V0.2版本在数据生产数据、显示效率等方面进行了大幅优化,具体如下:生产速度大幅提升,V0.2版本增加了多线程生产,生产效率大大提高提高了至少7倍。显示效率大幅提高,V0.1版本在构建LOD上,使用了比较基础的LOD构建,主要在于打通OSGB生产流程,在显示效率上并未做优化。V0.2版本大幅优化了LOD构建机制,极大减少当前视景范围内OSGB瓦片调度数量,进而大幅提高数据加载速度和显示效率。同时修复了瓦片缺失的问题。数据压缩20%,V0.1版中OSGB瓦片是未简化的,图片是原始Jpg数据,而在V0.2版本中,图片压缩设置为70,数据量减少了20%,但是可视化效果并未有肉眼可见下降。
3.V1.0版本
支持ContextCapture目录结构格式生成。之前生成的格式与3dtiles瓦片格式保存一致,能够基于osgViewer进行正常加载和显示,在目前ContextCapture是当前倾斜摄影生产标杆的情况下,其生成的目录组织结构成为了用户使用的默认方式,很多osgb转obj/fbx/3dtiles等格式的开源工具或商业软件,都是此生产的osgb成果数据进行处理,很多读者都有共同的使用转换需求,基于此,这次正式版除了能够生成3dtiles目录格式外,还能生成ContextCapture OSGB成果数据目录格式。
效果优化提升。谷歌倾斜摄影OSGB转换工具中RangeMode采用的是DISTANCE_FROM_EYE_POINT模式,并非大家常用的PIXEL_SIZE_ON_SCREEN,采用此模式,根据相机到瓦片中心点的距离进行瓦片切换,而不是按照瓦片所占的屏幕像素大小切换,这样会更合理,同时和3dtiles保持一致,也和谷歌官方倾斜摄影保持一致,在效果和性能上保持三者一致性。同时在这次更新中,去除了纹理摩尔纹效果,在效果表达上更加清晰,纹理摩尔纹是由纹理贴图过采样形成的摩尔纹闪烁,对三维实景影响比较大,使用多重纹理,根据相机距离加载不同层级的纹理图片,解决纹理过采样的问题。
生产效率再度提升。这次在数据生产效率上进行了优化,V0.2版生产235平方公里的台北倾斜摄影数据,耗费了约3个小时,在这次版本中,生产效率进一步提高,耗费约2.5小时处理完成,生产效率提升约20%。
增加成果数据质检流程。之前版本中,数据是没有进行质检的,受限于按范围采集规则,会导致存在部分节点子节点丢失的情况,但是当前节点又记录了子节点PagedLOD信息,虽然在浏览上没有太大影响,但是使用osgViewer会频繁有警告信息,更重要的是使用这份osgb数据转成obj/fbx/3dtiles会导致失败,因此增加质检校验环节,保证数据更加符合标准,增强数据结构健壮性,兼容市场主流OSGB转换处理工具。
4.V1.1版本
支持Cesiumlab等软件将OSGB数据转成3DTiles格式数据。很多读者使用OSGB数据,并非是直接加载到OsgEarth上做可视化用,而是通过顶层合并,将多份数据合并根节点,再转成3dtiles,这样能加快数据显示。大家使用的Cesiumlab或其他OSGB处理软件,基本上都是参考Cesium3DTilesConverter或3DTiles这两款开源的转换工具。
V1.0支持了OSGB的Mipmap模式,虽然解决了摩尔纹显示问题,但是引出了新的问题,当相机高度比较低的时候,瓦片接缝现象比较明显,严重影响数据显示效果,因此把纹理模式还是采用LINEAR模式,解决瓦片接缝的问题
5.V1.2版本。
V1.2版本解决了OSGB数据偏移问题,这也是转换工具V0.2发布以来一直未解决的难点。目前通过obj、fbx等三维模型数据转换OSGB格式,都会存在坐标偏移问题,这个问题在OSGB数据生产很常见。OSGB数据以米为单位,而且精度很高,谷歌倾斜摄影数据分辨率能达到5cm,相比目前卫星影像0.3米高分辨率还要高6倍。如何将高分辨率OSGB数据完美、精准匹配叠加在OSGEarth等三维GIS平台上,使用WGS84或者3857等常用投影或地理坐标系,误差较大,具体表现是OSGB数据与卫星影像数据不匹配,看下面效果图:
上图OSGB数据是采用Web Mercator(3857)进行生产的,导出DOM数据叠加卫星影像底图进行对比可以看出:OSGB数据中道路和房屋等和卫星影像底图数据没有匹配上,偏差在20米左右,无法满足实际使用要求。但是在V1.2版本中,彻底解决了数据偏移问题,解决这个问题,并非偏移原点坐标就能解决,而是在数据生产时,对数据进行逐顶点处理转换,再进行优化合并。经过正确处理后的效果如下图所示:
五、免费数据分享
本次免费数据,我基于V1.2版本,将香港、澳门、日本那霸等地方的数据进行了重新生成,为了满足大家对数据的使用需要,也重新下载了原始数据,保证每一层级的区域范围都一样,增强大家对数据的使用体验。下面免费数据,具体领取方式大家可以私信联系我或者在评论区留言,我会及时将领取方式发给大家。
1.香港
香港数据新增了屯门等地区的倾斜摄影数据,目前倾斜摄影覆盖面积预计有700平方公里,数据大小489GB,数据大小见下图:
2. 澳门
澳门地区有39GB,见下图:
3.那霸
日本那霸地区目前数据大小有244GB大小。
4.台湾桃园市政府
这份样例数据相信大家经常见到。
5.台北101大厦
最早使用的样例数据,效果无需多言。
五、结语
总结下来,谷歌倾斜摄影OSGB转换工具的功能有主要几点:
1.支撑大势智慧等软件显示浏览和处理生成的OSGB数据。
2.支持OSGBLab和CesiumLab等商业工具软件或者3dtiles等开源工具将OSGB数据转成 3DTiles格式。
3.能够在OSGEarth等工具上加载OSGB数据显示,并且能够精准匹配坐标。
4.能够一次批量生产86.5万平方公里的谷歌全球倾斜摄影数据。
基于V1.2版本,我也对台湾台北市、桃园市以及台中市数据进行了重新下载与生产,与之前不同的是,这次数据每一层区域范围都一样大,有需要的读者可以私信联系。最后希望大家在数据使用的过程中,对发现的问题能够及时反馈,我将及时解决并进行数据升级,努力为大家提供更加优秀的数据使用体验。