冯传勇 张振军
摘要:针对大规模水下地形海量数据与有限的计算机内存空间及显卡绘图效率之间的矛盾,提出了一种基于DEM瓦片金字塔模型与Oracle数据库的海量地形数据组织与储存方法,以及一种基于透视投影的四叉树调度方法,实现LOD地形实时高效渲染。针对水下地形起伏小、立体效应差的问题,提出一种基于高程分布概率密度的自适应分层设色法,增强了水下地形渲染的立体感。典型应用结果表明:该方法可突破计算机硬件性能限制,在普通PC机环境实现大规模水下地形的实时、交互式三维可视化,并取得较高的效率和良好的视觉效果。
关键词:水下地形; 三维可视化; 层次细节模型; 数字高程模型; 自适应分层设色
中图法分类号: TV221.1
文献标志码: A
DOI:10.16232/j.cnki.1001-4179.2021.11.019
0引 言
随着互联网、大数据、空间地理信息技术的不断进步,我国测绘现代化和信息化发展进入了一个新的阶段,即从以地图生产为主的数字化阶段转向以地理信息服务为主的信息化阶段。在水下地形测绘领域,传统DLG(数字线划图)无法满足丰富、多样、广泛、便捷的地理信息服务需求,水下地形三维可视化正成为该领域的重要关注点之一[1-2],其在防洪减灾、水资源调查、水域导航、涉水工程建设、水域河道航运等领域有着广泛的应用价值[3-5]。
随着计算机硬件水平的不断提高,水下地形三维可视化技术也得到了很大的改善。与此同时,随着测绘技术的不断进步,水下地形可视化需要处理的数据量也在飞速增长。面对TB级甚至PB级的大规模地形数据,水下地形三维可视化技术面临着巨大挑战。如何突破当前计算机软硬件水平的限制,实现大规模水下地形场景实时、交互式三维可视化,一直都是该领域研究的重点与难点[6-7]。目前,国内外学者对海量地形数据的合理组织[8]、分区调度等方面进行了大量研究[9-10]。针对海量数据存储与计算机内存不足的问题,提出了四叉树、八叉树、瓦片金字塔等数据组织模型[11-13];针对显卡渲染效率有限的问题,提出了基于LOD(层次细节模型)的动态调度方法[14-15]。存在的主要不足包括两方面:一是普遍采用文件方式组织和存储模型数据,不利于数据安全、远程共享;二是普遍针对陆地地形三维可视化,与陆地地形相比,水下地形通常起伏变化较小,且缺乏真实影像纹理数据,采用常规方法立体效果较差。
为此,本文针对水下地形数据的特点,研究水下地形三维建模与可视化技术,结合数据库与LOD技术,实现大规模水下地形数据合理组织、存储与高效调度;通过自适应分层设色,增强水下地形立体效果。并在此基础上,基于OpenGL开发了一套水下地形三维可视化系统。
1水下地形三维建模
1.1DEM瓦片金字塔生成
水下地形三维模型常用规则格网DEM(数字高程模型)或TIN(不规则三角网)表示。其中,规则格网DEM具有数据量小、计算分析高效、易于更新等优势,是三维数字地球等大规模地形场景三维可视化普遍采用的模型。本文结合瓦片金字塔数据组织模型,将多波束测量得到的离散三维点云插值生成规则格网DEM,设瓦片大小为256行×256列,技术流程如下。
(1) 统计离散点云平面分布范围,按照设定的DEM格网间隔和瓦片大小,将测区进行分块,并为离散点建立规则格网索引。
(4) 鉴于多波束等测深数据受惯导定位定姿精度、声速效应、测船姿态变化等多种因素影响,相对地面测量误差较大,兼顾水下地形相对较平滑,采用高斯滤波器对DEM进行滤波处理。高斯滤波核函数如式(3)所示,能较好地顾及光滑性,适合水下地形滤波;为加快运算速度,二维卷积可由2次一维卷积运算替代,可将算法复杂度由O(n2)降至O(2n),其中n为卷积窗口大小。
(5) 开展DEM瓦片金字塔构建。对DEM瓦片按0.5倍大小降采样,即将256×256大小的瓦片降采样为128×128,并将相邻行列的4个降采样瓦片合并成一个新的256×256瓦片。
(6) 按照步骤(5),逐级降采样与合并,得到一个多分辨DEM瓦片金字塔,层数如公式(4)所示。
(7) 从金字塔底层到顶层进行DEM瓦片数据冗余检测。对于相邻两层金字塔瓦片,若上一层瓦片的覆盖范围内,下层瓦片DEM高差方差均小于设定阈值,则删除下层瓦片。
(8) 水下地形通常缺少真实影像纹理,为渲染得到立体感、光滑的三维地形,需逐网格点计算平均法向量,使模型面片获得正确的光照,产生阴影与立体效应。格网点平均法向量的计算方法如图1所示,取格网8邻域点,与当前点0连线,建立8个空间向量,将两两相邻向量进行叉乘计算法向量,取8组归一化法向量的均值,如式(5)所示。为保证瓦片接边处法向量的一致性,在瓦片接边处取该瓦片与相邻瓦片邻域点计算平均法向量。
1.2DEM瓦片数据存储管理
目前,大部分的三维可视化系统采用基于文件系统的存储管理方式实现大数据量地形数据的调度和渐进绘制,该方式需要建立大量的文件或文件夹,并且其数据保密与数据更新困难。而基于数据库系统的存储管理模式可有效解决这些问题。鉴于在现有数据库中Oracle数据库在稳定性和性能方面更胜一筹,本文采用Oracle数据库存储DEM数据。每级(level)金字塔的基本信息对应一条记录,存储在DEM信息数据表中,如表1所列。金字塔各级瓦片数据则存储在如表2所列DEM瓦片数据表中,每个瓦片对应一条记录。为便于快速调度,将瓦片DEM高程数据及法向量数据以二进制方式存储。其中,高程数据采用float數据类型存储,每个高程数据占用4字节存储空间;将法向量数据归一化后,映射到(0~255)区间,并采用uchar数据类型存储,每个三维法向量仅占3字节存储空间,可大大减少数据量,从而提高查询调度效率。为保证数据安全,为数据库设计不同权限的用户,各用户通过有效用户名与密码登录。
2水下地形三维可视化
2.1模型自适应分层设色
与陆地地形相比,水下地形通常起伏变化较小,仅仅依靠法向量与光照模型,立体感较差;而多波束等现有测量系统无法采集得到水下地形的真实纹理数据。因此,通过合理的高程分层设色方法,结合法向量与光照模型可增强水下地形立体效果。分层设色法是以一定次序的颜色或色调变化来显示质量特征和数量逐级变化的方法。常规的分层设色方法需要人为设定各关键高程点的颜色,较为繁琐;或采用等高差自动均匀分层设色的方法,难以表现局部地形的微小变化。为此,本文借鉴直方图规定化数字图像增强的思想,设计了一种自适应分层设色的方法,流程如下:
(1) 设定n种(通常5~10种)不同RGB颜色。
(2) 逐瓦片统计DEM高程,得到整个测区的高程最小与最大值(Zmin,Zmax),并按设定高程间距(如0.5 m)将Zmin~Zmax区间划分为m个子区间,统计每个高程子区间高程点的数量,即得到测区高程直方图。
(3) 按式(6)计算高程直方图的缩小倍率λ,将直方图中每组数据纵坐标值缩小λ倍并取整。
(4) 按直方图纵坐标值为m个子区间逐个分配不同数量的颜色(色阶),并采用分段线性插值法,根据区间高程插值出每种颜色的RGB值。
(5) 将插值后颜色按高程次序排列,得到一组包含高程值与RGB颜色的渐变色卡。按色卡为DEM瓦片进行着色。
显然,该方法的本质是根据水下地形高程分布密度进行自适应设色,给高程变化区间小、分布范围大的区域分配数量更多的色阶,使得该区域的自动设色对高程变化更加敏感,从而能显著地表现出局部地形的微小变化。
2.2DEM数据调度与渲染
采用金字塔模型仅解决了海量数据的组织与存储问题,然而计算机显卡绘图能力有限与三维可视化渲染质量、效率之间的矛盾还需要采用LOD(Level of Detail,层次细节模型)技术来消除。LOD的思想是指对同一个场景的物体使用具有不同細节的描述方法得到一组模型,供绘制时选择合适的细节模型使用。层次细节简化技术在不影响画面视觉效果的条件下通过逐次简化景物的表面细节来减少场景的几何复杂性,从而提高绘制算法的效率。该技术通常对每一原始多面体模型建立几个不同逼近精度的几何模型,与原模型相比,每个模型均保留了一定层次细节。 当从近处观察物体时,采用精细模型;而当从远处观察物体时,则采用较为粗糙的模型。因此,DEM瓦片数据的动态调度与实时渲染是实现LOD的关键,即以地形数据预处理后形成的瓦片层次数据组织结构为前提,在地形场景绘制过程中采用自适应层次组织结构的数据。
本文采用四叉树算法实现DEM瓦片的动态调度,具体实现方法如下:
(1) 对于0级(金字塔最顶层)DEM瓦片,分别连接两对边中点,使之分裂成4 个大小相同的子级瓦片。
(2) 对于每一个子级瓦片,取其4个角点,采用三维投影的模型矩阵、投影矩阵、视图矩阵,计算瓦片在屏幕上的投影位置。
(3) 根据子瓦片投影位置,判断该瓦片是否在窗口显示范围内。
(4) 如果子瓦片在显示范围内,则进一步估算其投影面积和显示分辨率。
(5) 如果该瓦片的细节层次尚未达到显示分辨率要求,则按步骤(1)~(4)对该子瓦片继续分裂。
(6) 依此递归,直至划分至满足要求的细节层次,则从数据库中调度对应层级的DEM瓦片进行三维渲染。
按照上述方法,动态加载的LOD地形由很多不同分辨率的DEM瓦片组成,若相邻两个瓦片具有不同的剖分层次,其边界拼接处的高程值不完全相等,从而产生裂缝或孔洞。为了消除三维场景的裂缝,将DEM瓦片的每个格网剖分为两个三角形来绘制,并在不同分辨率瓦片接边处将两两相邻的三角形合并成一个三角形来绘制,绘制方法如图2所示。
采用四叉树模型对水下地形进行LOD处理后,可在保证地形渲染质量的同时,大幅减少实时渲染的DEM网格数量。此时,大规模场景三维地形渲染效率还取决于从数据库中实时调度DEM瓦片数据的速度。应用程序对数据库的访问通常采用ADO等中间件来实现,读取大量数据时效率较低,难以满足地形实时渲染对数据快速调度的要求。为此,本文采用OCI(Oracle Call Interface)直接与Oracle连接,以解决DEM瓦片数据实时调度的效率问题。OCI是由Oracle提供的用于开发前端应用程序及中间件的C/C++开发类型库,是Oracle 数据库的底层访问接口,相较于 ADO(ActiveX Data Objects)、ODBC(Open Database Connectivity)等中间件技术,ICO虽然很复杂,但拥有最高的效率和最全的功能。
3试验分析
本文采用VC++编程环境、OpenGL图形库开发了水下地形三维可视化系统。系统主要功能包括:水下三维地形点云导入、金字塔多分辨率DEM瓦片建模、DEM瓦片数据入库、DEM自适应分层设色、LOD地形三维可视化、三维场景漫游、三维动画、空间量测与定位等。以杭州湾海底管道三维可视化为例,介绍本文研究成果的应用。海底管道是最快捷、最安全和经济可靠的海上油气运输方式,也是海上油(气)田开发生产系统的主要组成部分,由于长期受到海流的冲刷、海洋地质灾害以及人类活动等因素的影响,易发生断裂,造成巨大的经济损失和严重的环境污染。通过海底三维可视化技术,可直观、全面再现和定量分析海底管道的掩埋、裸露、悬空状态,为海底输油管道安全监管提供强有力的技术支持。
测区范围约为24 km×18 km,多波束三维点云数据文件大小为9.7 GB,平均点距约1.0 m。将离散点云插值成规则格网DEM,最高分辨率DEM的格网大小为0.5 m×0.5 m,金字塔共分为9层,DEM总数据量约为9.3 GB,高程分布范围为-3 ~ -20 m。三维可视化渲染效果如图3所示。其中,三维管道模型和桩号注记由现有BIM(Building Information Modeling)模型转换为3ds三维模型交换格式后直接导入,系统通过解析3ds数据文件中的材质与纹理数据、三维顶点坐标、三角网顶点索引与面信息,将BIM模型加载到三维地形场景。采用普通电脑测试(内存:4 GB;显卡:NVIDIA Quadro 2000;CPU:Core i7-4790 @3.60 GHz),内存消耗约130 M,三维可视化渲染速度约为50FPS(Frames Per Second,帧/s),三维场景漫游与互操作流畅,有效克服了大规模地形三维可视化对超高计算机硬件配置的依赖问题。通过自适应分层设色,使得海底高程变化较小的区域有显著的着色差异,结合法向量与光照模型,对水下地形的三维可视化表达有了良好的立体效应和视觉效果。
4结 语
本文从海量地形数据组织与储存、LOD地形调度、三维地形渲染三方面入手,研究了大规模水下地形三维可视化技术。采用规则格网DEM与瓦片金字塔模型,设计了oracle数据库,实现了对大规模水下地形数据的组织与存储;提出一种基于高程分布密度的自适应分层设色法,增强了水下地形立体感;研究了一种基于四叉树和OCI的LOD地形调度与无缝渲染方法,实现了大规模水下地形的实时三维可视化。典型应用结果表明,本文研究方法能取得较高的效率和良好的视觉效果,可突破计算机硬件性能限制,可在普通PC机上实现大规模水下地形的实时、交互式三维可视化。
参考文献:
[1]WILSON D S,LEIFER I,MAILLARD E.Megaplume bubble process visualization by 3Dmultibeam sonar mapping[J].Marine and Petroleum Geology,2015,68:753-765.
[2]王楠,徐永臣,陶常飛.多波束海底地形三维虚拟仿真研究[J].海岸工程,2019,38(3):203-209.
[3]江玉玲,彭国均.海底地形的三维可视化建模研究[J].重庆理工大学学报(自然科学版),2015,29(10):139-142.
[4]李四海.三维可视化技术在海底环境探测中的应用[J].海洋测绘2003,23(4),:29-32.
[5]李军,滕惠忠.海底三维可视化技术及应用[J].海洋测绘,2004,24(4):44-47.
[6]林钟扬,金翔龙,顾明光,等.基于MapGIS-TDE三维平台的地质模型构建[J].人民长江,2019,50(增2):85-88.
[7]尹长林,詹庆明,许文强,等.大规模三维地形实时绘制的简化技术研究[J].武汉大学学报(信息科学版),2012,37(5):555-559.
[8]FU Z L,ZHANG W Y.Data block partition and database based large scale terrain 3D visualization[C]∥International Conference on Computational Intelligence and Software Engineering,IEEE,2009:1-4.
[9]刘小飞,罗功林,严勇.基于3D Max和CryENGINE 3的水电工程三维可视化[J].人民长江,2020,51(11):219-223.
[10]ZHOU D,LIU Q,ZHANG WH.Key technology with large-scale three-dimensional terrain management[C]∥2nd International Conference on Computer Engineering and Technology,IEEE,2010:443-447.
[11]王响,雷小永,戴树岭.基于视点预测的大规模地形的实时渲染[J].系统仿真学报,2013(6):1202-1206.
[12]任宏萍,靳彪.基于4叉树的LOD地形实时渲染技术[J].华中科技大学学报(自然科学版),2011(2):6-10.
[13]董有福,孟顺时,和娴.DEM径向基插值搜索方式优选分析[J].人民长江,2019,50(10):131-135.
[14]JAMES C.Hierarchical geometric models for visible surface algorithms[J].Communication of the ACM,1976,19(10):547-554.
[15]周建红,杨彪,王华,等.海量低空机载LiDAR点云的地形断面快速生成算法[J].测绘科学技术学报,2018,35(2):170-174.
(编辑:刘 媛)
Abstract:In view of the contradiction between massive data of large-scale underwater terrain and limited computer memory space and graphics card drawing efficiency,we propose a method of massive terrain data organization and storage based on DEM tile pyramid model and Oracle database,and a quadtree scheduling method based on perspective projection to achieve real-time and efficient rendering of level of detail (LOD) terrain.Moreover,considering the small undulation and poor stereo effect of underwater terrain,an adaptive hierarchical coloring method based on elevation distribution probability density is proposed to enhance the stereo effect.Typical application results show that the proposed method can realize real-time and interactive 3D visualization of large-scale underwater topography on ordinary PC,and achieve high efficiency and fine visual effect.
Key words:underwater topography;3D visualization;level of detail (LOD);DEM;adaptive hypsometric layer