基于Cesium的水陆融合三维场景构建研究
2023-02-25许叙源
许叙源
(广东省水利电力勘测设计研究院有限公司,广州 510170)
1 概述
近年来,“智慧水利”、“数字孪生”理念的提出以及三维实景模型等三维展示方式的迭代更新,不断推进了水利工程的三维可视化、信息化建设[1-4]。在水利工程设计、施工、移民征地等各个环节都离不开周边环境信息做支撑,GIS作为地理信息的数字化表达载体,正为 水利三维设计提供了更大尺度的信息支持[5]。以往较多的水利GIS系统采用在ArcGIS等主流GIS平台上进行二次开发,并以C/S(客户端)模式运行,即使能以浏览器运行,也需提前安装相应的插件,这存在安装软件繁琐、兼容性较差等问题。近几年WebGL技术飞速发展,WebGL与 GIS 技术相结合而形成的 WebGIS可以很好的解决上述问题,WebGIS已成为水利信息可视化发展的一个重要方向[6]。
水利GIS系统中的三维模型及可视化主要着重于陆上部分以及水工建筑等,而对水下三维场景展示较为薄弱,特别对于水陆融合三维可视化更是缺乏研究。通常这些系统的三维展示,陆上部分以三维地表模型、三维实景模型、BIM模型为主;水下部分多以二维等深线展示、或者简单以水面影像代替水下场景展示(见图1),甚至直接裁掉水域场景(见图2);为数不多以三维形式展示,也多是三维单色系渲染(见图3),即使陆上及水下场景均实现以三维效果进行展示,但在水陆交界处又容易出现拼接缝隙(见图4虚线内),无法达到水陆融合三维展示效果。
图1 以水面影像替代水下场景 效果示意
图2 裁掉水域场景 效果示意
图3 水下场景单色系渲染 效果示意
图4 水陆交界处拼接缝隙展示 效果示意
作为WebGIS中一个重要的开源地图引擎——Cesium,是一个使用WebGL来进行硬件加速图形化的三维地图引擎,支持2D及3D的地图显示,可以实现多源数据的三维可视化,以其实用性、直观性在行业内越来越受欢迎[7]。为了更直观、全面、准确地实现水陆融合三维展示,为相关职能部门提供可靠的数据支持,本文研究提出了基于Cesium的水陆融合三维场景构建技术。
2 Cesium地图引擎简介
Cesium是一个用于在Web浏览器上实现三维地球展示的JavaScript地图引擎[8],支持2D、2.5D及3D等展示形式,同时支持调用OGC空间数据服务规范下的WMS、WMTS、TMS等多种地图服务图层,以及支持实现全球高精度地形数据可视化[9]。能够在三维虚拟地球上进行实体创建、模型数据加载以及众多空间分析功能等。Cesium的体系架构按照层级可划分为核心层、渲染器层、场景层和动态场景层4部分(见图5),各层级之间分工不同但又紧密联系,彼此协同工作共同构成了Cesium的渲染体系[10]。
图5 Cesium体系架构示意
Cesium原生态支持的切片数据3D Tiles,该数据格式是一种定位于Web环境下实现海量三维数据加载的数据规范。它提供了多细节层次LOD能力,渲染三维数据时根据瓦片的空间位置来判断当前相机可视条件下加载哪个层级的瓦片数据。通过控制渲染过程中加载请求瓦片的数量,有效地提高了加载大场景数据的效率、减少了内存占用的问题。
3 水陆融合三维场景构建原理和方法
本研究构建水陆融合三维场景的技术原理和方法如图6所示。
图6 构建水陆融合三维场景技术原理及方法示意
3.1 陆上三维模型构建
利用无人机倾斜摄影技术获取高精度、高分辨率的三维实景模型,作为陆上三维模型的基础数据。三维实景模型是运用多镜头相机对现有场景进行多角度拍摄,并利用三维建模软件进行处理建模的三维虚拟展示产品。其具有与现实场景一模一样的纹理色彩,并具备空间可量测性,可放大、缩小、旋转、多角度查看,在水利工程测量中得到越来越广泛的利用[11]。
3.2 水下三维模型构建
水下三维模型的基础数据来源于水下地形图,从水下地形图中提取出水下高程点及等高线等水下高程数据,进行高程校核,剔除及改正部分存在问题的数据,再建立三角网。在各种不同的三角网中,狄洛尼(Delaunay)三角网在拟合连续地形表面中应用较为广泛,一般用于建立不规则三角网(Triangulated Irregular Network,TIN)[12]。本研究采用该方法将水下高程数据构建成不规则三角网,后期将进一步处理生成水下三维模型。
3.3 三维模型裁剪
初始的陆上三维实景模型往往存在部分多余的水面影像数据,生成的初始水下DEM也会存在水域以外的多余数据,这就需要利用水陆边界线(水边线)对两种数据进行裁剪。水边线可以根据初始的三维实景模型及水下地形图综合判断并提取出来,利用提取后的水边线对初始陆上三维实景模型及初始水下DEM进行裁剪。
3.4 模型边界高程修正
由于陆上三维实景模型与水下三维模型采用了不同的技术手段获取,非一次性同源数据建模,需要再进行一个空间拼接。如果拼接前两种三维模型不进行边界约束处理,可能会导致拼接后在接边处存在缝隙。
本研究利用带高程信息的水边线分别对陆上三维实景模型及水下三维模型进行边界高程修正,使得两种三维模型的边界高程与水边线高程吻合,从而实现两种三维模型的无缝拼接融合。
水边线的提取依赖于水下地形图及陆上三维实景模型的综合判断,在提取出水边线平面位置的基础上,需要进一步确定水边线的高程属性。对于水面无落差或落差较小的河道或水库,水边线高程可统一赋同个高程值(见图7~图8);而对于水面落差较大的河道或水库,则需根据实际情况计算出水面比降(见图9~图10),并根据水面比降给水边线进行高程赋值,以确保能真实反映实际水边情况,水面比降i公式如下:
图7 无(小)落差水面水边线 俯视示意
图8 无(小)落差水面水边线 侧视示意
图9 较大落差水面水边线 俯视示意
图10 较大落差水面水边线 侧视示意
i=(H2-H1)/L=(ΔH/L)×1 000‰
(1)
式中:
H2——上游河道(水库)起始位置的水面高程,m;
H1——下游河道(水库)终止位置的水面高程,m;
L——河道(水库)从起始位置到终止位置的距离,m;
i——水面比降(千分率)。
前文已建立的水下不规则三角网,是一种边界非约束三角网,边界难以反映实际水陆边界,需要再加入带高程信息的水边线进行边界约束,从而修正水下三维模型的边界高程。同理,陆上三维实景模型也需要带高程信息的水边线进行边界约束,通过边界高程修正、模型边界压平至水边线等操作,使陆上三维实景模型边界高程与水边线高程吻合。
3.5 模型切片
1) 水下三维模型切片
经过边界高程修正后的水下不规则三角网,生成水下数字高程模型(DEM),借助Cesium第三方软件进行地形切片。同时,水下DEM计算出水下深度图,再按深度进行颜色层级渲染,得到水下深度渲染图。水下三维地形切片叠加水下深度渲染图得到最终的水下三维模型。
2) 陆上三维实景模型切片
倾斜摄影生产的三维实景模型主流格式之一OSGB,数据量通常都较为庞大,因而在三维可视化过程中,切片方法的选择非常重要,应当同时兼顾切片后的数据存储量及浏览流畅度等要素。在利用Cesium第三方软件进行切片的过程中,经过综合对比及优化,本研究在切片过程中采用KTX 2.0格式的纹理压缩方法并进行顶层重建。经测试对比,采用KTX 2.0纹理压缩切片后的数据在浏览显示时,比未压缩时的数据少占用显存80%以上,采用顶层重建后的数据,即使数百G的切片数据,全图显示也能达到秒级加载。
4 应用实例
本研究选取三水市东平水道西南段进行应用实践,河段长度约10 km,原始水下地形数据及陆上三维实景模型比例尺均为1∶1 000。水下及陆上三维模型经过切片后进行拼接融合,因两者边界均采用同一水边线进行高程修正,故最终可得到完整的水陆融合三维场景成果(效果见图11、图12)。该三维场景实现了运行时模型秒级加载显示、占用内存少,而且水陆交界处达到无缝效果,更具有真实性及直观性。成果可直接应用于主流的WebGIS系统,为水利、国土、环保、农业等相关应用系统提供数据支撑及技术保障。
图11 水陆融合三维场景 俯瞰示意
5 结论与建议
1) 本文研究构建的水陆融合三维场景,水下三维模型经渲染后,可真实、美观的反映水下地形,弥补一般GIS系统中水下三维数据显示的不足;陆上三维实景模型经过纹理压缩及顶层重建后,可大大减少系统运行浏览时占用显存过大的问题,更实现了海量三维实景模型全图显示的秒级加载效果,极大地提升了系统的流畅度及体验。
2) 水下及陆上三维模型均采用了带高程属性的水边线进行了边界高程修正,实现了水陆三维模型融合后接边处的无缝显示。
3) 本研究尚有不足之处,在于陆上三维实景模型部分岸边存在林密树高的情况,实景模型仅有树冠表面,缺失地表实景数据;该部分区域的无缝融合只是树冠的三维场景与水下三维场景的拼接,并非地表三维场景与水下三维场景的拼接。