三维电子海图地形可视化技术研究

相比于二维电子海图,三维电子海图可以承载更全面的海洋地理环境信息,提供更直观的辅助舰船导航、确保航行安全的决策指导应用,可以动态地反映出水文和潮汐等环境要素变化情况的三维显示.三维电子海图系统不仅拥有二维电子海图的所有功能,而且将人们对于海图的认识从一种更加直观,更加真实的视角进行了重新阐释.因此,对于三维电子海图的研究具有十分重要的意义.三维海底地形显示是三维电子海图系统开发的重要内容,但是,地形数据获取难度大、数据量少成了三维可视化技术的瓶颈.该论文主要对三维海底地形数据获取方法、组织和多分辨率显示等问题进行研究,并应用细节层次模型建立节点误差评价系统以实现地形简化,最后给出渲染结果和分析.

1三维水深数据获取方法研究

1.1水深数据获取方法分析

三维空间数据的获取手段有很多,如GPS测量技术、摄影测量技术、激光扫描技术、三维地震技术等,但是要获取海底水深数据却比较困难,一般需要实地测量,而且因与国家安全相关,数据往往是保密的,无法轻易获取.从现有的二维电子海图中提取水深数据,是实现三维电子海图地形显示的一种最经济、便捷的方法.电子海图信息是分层存取的,这些信息主要包括海洋,陆地、水系、近海设施、港口设施、水深等属性数据,这些信息可根据需要分层绘制和显示,因此可将水深数据单独作为一层信息,设计存取和处理方法,满足三维地形显示的需要.

但经研究发现,从海图中读出的水深数据不仅有限,而且分布散乱,如图1所示,因此必须进行相应的处理,以生成满足可视化要求的数字高程模型(digitalelevationmodel,DEM)数据

三维空间可视化技术主要采用不规则三角网和规则格网来表示DEM数据.不规则三角网便于地形特征要素的描述,具有良好的拓扑结构,但不便于进行空间分析,算法设计通常比较复杂;规则格网数据存储结构简单,便于同纹理数据相结合,具有良好的表面分析功能,但数据冗余,计算效率较低,地形特征也不够明显.该论文选用规则格网表示海底地形,针对规则格网在数据冗余和地形特征不明显方面的不足,拟通过四叉树结构来组织空间数据,并建立散乱数据索引及节点误差评价系统来保障显示效果和效率

1.2散乱数据索引方法研究

由散乱分布的地形数据插值得到规则格网数据的算法有很多,加权平均法是一种较为简单、有效且经常被采用的算法[1-2].设插值点的p的坐标为(xp,yp,zp),邻域范围内的采样点为(xi,yi,zi)(i=1,…,n),n为邻域范围内采样点的个数,则加权平均法的数学模型可表示为

式中:dpi为内插点和采样点之间的距离;Pi为采样点的权重,考虑到计算的简单性和地形的变化规律,取Pi=d-2pi.

插值点邻域范围内的采样点是通过求取采样点和插值点之间的距离与阈值进行比较判断获得的,但是由于水深数据分布的散乱性,一组采样点的确定就可能涉及到整个数据的遍历,这一过程将会非常费时,直接影响到DEM内插的效率.因此,为提高插值点邻域范围内采样点的检索速度,有必要先对数据进行一次处理,使分布散乱但位置相对比较接近的数据点聚集到一起简化处理,从而提高大规模散乱数据的检索效率.

首先对数据进行格网划分,具体方法如图2所示.

图中有16个点,分布在3×3的网格内,划分格网的大小可由如下公式确定:

式中:A表示采样区域的面积,计算公式为

式中:n表示采样点的总数;m、N分别表示单位格网内期望采样点数的最小值和最大值,根据加权平均法对数据量的要求,文中取m=4,N=10.

网格划分完毕后,依据下式将数据进行一次遍历,把采样点归入相应的网格:

式中:INT()表示取整操作,(i,j)即此采样点所对应的二维网格坐标,如图3所示.图中,由经纬度范围数据建立二维数组vh(i,j),以记录采样点的位置,初值为0,vertex(x,y,z,nentvertex)为采样点数据结构,其中nextvertex用于记录当前采样点的下一个采样点.规则格网数据获取过程为:对图2中所有数据进行扫描,当扫描到某一点如第3点,按照公式(5)判断3点落在网格(2,3)中,由于此前的第1、2点并不在(2,3)网格中,vh(2,3)=0,该点为第一个置入此网格的点,则置vh(2,3)=3;当扫描到第11点时,第11点也在(2,3)网格中,则置第11点的nextvetex=3,置vh(2,3)=11,以此类推,处理第13点和第16点.vh(2,3)=16,记录了划归到该网格的最后一个数据,每一个采样点结构中都记录了与其在同一网格的下一个采样点信息,若下一个采样点值nextvertex=0,则表明该点为此单位网格的最后一点.

采样点划分完毕后,即可采用加权平均法对水深数据进行插值,以获得期望的插值点水深.

2三维海底地形多分辨率渲染

2.1地形四叉树

细节层次(levelofdetail,LoD)模型是图形简化的一项重要技术,1976年Clark[3]首次提出以来受到越来越多的关注.当观察点远离景物时,用户主要关注的是对象的全局信息,只需要显示低分辨率粗糙模型;近距离时,用户主要关注局部信息,需显示高分辨率细节模型即可.LoD对模型进行实时简化,缓解了大规模图形处理对硬件的依赖性,为大规模地形三维可视化提供了一条重要研究方法.因此,为满足未来大规模海底地形数据渲染的要求,采用多分辨率地形显示是非常必要的.

多分辨率地形通常采用树形结构进行描述,如四叉树、二叉树.四叉树与二叉树都可以对规则格网数据进行组织,但与二叉树相比,四叉树主要具有以下优点:四叉树与地理信息在坐标系方面有天然的统一[4];四叉树结构便于同纹理影射技术相结合;能够降低选择节点的时间,加速地形简化算法.因此,此论文采用四叉树数据结构对DEM数据进行表示,如图4所示.

图4(a)中每个正方形为地形四叉树的一个节点,表示地形中一块相应的矩形区域,“Eye”表示视点,灰色部分为其所能观察到的区域.采用四叉树构造多分辨率地形,在节点递归分割的初期,通过可见性判断分析,将不可见部分裁减掉,如图4(b)所示,虚线部分表示可见性判断后裁减掉的部分,实际用于图形渲染的部分已经大大减少.因此,采用四叉树表示地形场景时,可以由分辨率的变化,动态选择节点层次进行显示,使其具有较高的绘制效率,以满足交互式地形漫游的需要.

2.2节点误差评价系统的建立

在三维显示中,要考虑使分辨率适应地形表面的变化,在地形比较平坦的地方使用较高的分辨率渲染,比较崎岖的地方使用较低的分辨率渲染,以突出地形特征;另外考虑的因素是视相关,距离视点较近的地方往往是人们最为关心的地方,视相关因素主要体现在视点和节点之间的距离上,表现为离视点近的地方分辨率较高,反之较低.基于地形场景视相关和地形特征2种因素[5-7],可基于四叉树动态选择一组最优节点实现对地形场景的连续多分辨率表示.

如图5所示,l为视点到节点中心位置之间的距离,d为节点大小,e0、e1~e4、e5~e8分别为四叉树中心点、4个边点、4个子节点相对于平均误差平面的误差,平均误差平面是以节点为中心,使邻域内节点具有最小拟合误差的平面.取9个值中最大的一个和节点大小的比值作为粗糙度的评价值,

即综合考虑视相关和地形特征这2种因素的影响,通过下式来描述节点误差评价准则:

式中:C为可调因子,C越大地形分辨率越低

3实验结果分析

采用四叉树对所获取的海底格网地形数据进行组织,并利用VisualC++6.0和OpenGL可视化技术对其进行多分辨率渲染,结果如图所示:

在插值得到的规则格网数据中,选取了一组512×512的海底地形数据,并进行渲染,如图6所示.图6(a)为未采用节点评价系统的全分辨率渲染结果,图6(b)为采用节点评价系统的渲染结果.图(a)和图(b)渲染的三角形数目分别为18461和5124,但二者在靠近视点的地方,渲染效果基本相同.图6(b)在渲染较少三角形的情况下获得了全分辨率效果,摒弃了不必要的三角形渲染,图7给出了渲染帧率图(framepersecond,FPS),图6(b)帧率是图6(a)的2倍,渲染效率明显提高.

图6(b)中,距离视点较远的区域分辨率较低,较近的区域分辨率较高,而且随着视点的改变,地形细节得到了有效调整,具有连续性,实现了LoD技术对场景渲染的要求.结合图6(a),在靠近视点地形比较平坦的地方相对于地形特征比较明显的地方同样具有较高的分辨率.以上结果充分说明了采用四叉树进行地形数据组织的合理性以及误差评价系统的有效性.

4结束语

研究了三维电子海图海底地形可视化技术.利用二维电子海图要素分层显示的特点,获取离散的水深和位置经纬度数据,并采用加权平均法插值得到规则格网数据,同时提出了一种提高离散数据检索速度的处理方法;采用四叉树对规则格网数据进行组织,为满足视相关和地形特征因素,此论文还设计了一种节点误差评价系统;最后给出了海底地形的连续多分辨率显示结果,表明了地形数据的正确性、数据组织的合理性以及误差评价系统的有效性.关于三维电子海图系统的广泛应用还有很多要研究的课题,具有巨大的研究价值和应用价值,它涉及到各种技术的综合应用,在未来的很长时间里将受到人们更多的关注.