基于电子海图信息实时生成三维视景技术

计算机视景生成技术中真实视景的生成一直以来都是以“现场拍摄—场景建模—实时渲染”的过程实现的,虽然这样既能够保证所设计出的三维视景的真实性,也能保证其应用的可靠性,但是“现场拍摄—场景建模”这一过程却要耗费大量的人力物力.倘若能够依据电子海图数据生成三维海域及岛礁模型,再对其粘贴上真实的卫星图像纹理,则也可以很好地完成真实视景的实时生成过程,并且可以节省大量的人力和物力.鉴于此,本文提出了依据电子海图数据信息实时生成三维视景的这一技术构想,并简述了基于电子海图信息实时生成三维视景过程中的几个关键技术.

1电子海图信息实时生成三维视景的过程描述

电子海图是现实海域在计算机中的二维体现,它描绘着海域的各种情况,包括岸形、岛屿、礁石、水深、航标和无线电导航台等,它是航海工作必不可少的辅助工具.对于二维电子海图所提供的数据信息,可以使用计算机对其进行读取,并对其中的高程数据进行插值及网格化处理,使用OpenGL对处理过的海图数据进行三维曲面拟合以生成OpenGL三维曲面,应用LOD(细节层次模型)技术对OpenGL三维曲面进行简化,应用OpenGL对LOD曲面模型粘贴上真实的卫星纹理图像,则可对OpenGL三维纹理曲面进行渲染,同时也完成了依据电子海图信息实时生成三维视景的具体过程如图 1 所示.

2三维视景源数据的获取

依据电子海图实时生成的三维视景的真实性至关重要,而三维视景的真实性则主要体现在所生成地形的真实性与地形表面纹理的真实性这2个方面,三维地形数据与卫星纹理数据的获取方法如下.

2.1三维地形数据的获取

虽然三维地形数据的获取除了海图以外,还可以依据GPS测量、摄影测量、海底回波探测等技术进行,但由于成本及其他方面的因素,依据电子海图信息获取三维地形数据仍然是一种主要途径[1-2].目前比较常用的电子海图有S-57标准海图与MVCF(Millitaryvectorchartformat(我国军用数字海图格式)).海图文件一般包括控制文件、图形文件、过程.具体过程如图1所示索引文件和属性文件4种,在获取时需要对4种文件分别进行读取.

2.2三维视景纹理数据的获取

通常情况下视景的纹理都是通过现场拍摄、虚拟生成和卫星图像等手段获取的.其中,现场拍摄过程繁杂、成本较高,而虚拟视景又因缺少真实性而没有太高的实用价值.卫星图像纹理虽然是精度较低的真实纹理,然而大面积海域中三维视景的显示并不需要太高的精度,卫星图像的精度已经能够满足要求.因此,使用卫星图像纹理生成三维视景是一种十分可行的途径.

卫星图像是各种人造地球卫星在运行过程中,通过照相机、电视摄像机、多光谱扫描仪等设备,对地面物进行摄影或扫描所获得的图像资料.目前较常用的即谷歌地球提供的卫星图像纹理,在互联网上可下载.谷歌地球提供了“保存图像”工具,该工具能够将当前屏幕所显示的图像以JPG文件格式保存到指定的文件夹中.为了使保存的图像能够进行拼接,必须在图像交汇的位置设置拼图控制点.拼图控制点采用谷歌地球提供的“添加地标”工具进行,在需要布设控制点的地方添加地标[3].

3三维视景源数据的处理

由于在依据电子海图信息实时生成的三维视景中,地形特征主要是由电子海图所提供的高程数据所决定,环境特征则主要由自然纹理所决定,因此需要对海图中的高程数据以及卫星图像提供的自然纹理进行必要的处理.

3.1高程数据的插值处理

由于在绘制海图时所选取的采样点的数量是有限的,因此必须对其进行插值处理,以满足DEM(高程数据模型)的要求.目前常用的插值方法为:反距离加权法(IDW)、Shepard方法、径向基函数插值法、有限元方法、最小规模网格法、Clough-Tocher插值法以及混合插值算法.这些方法均有其优点和不足,实际处理中要根据数据的物理特性及对数据的具体需要来选取最优的算法.

3.2高程数据的网格化处理

从电子海图中读取出的高程数据不仅有限,而且分布散乱,因此需要对其进行网格化处理,以满足三维建模的需要.目前常用的数据网格化算法有不规则三角网、规则格网和不规则三角网与规则格网的混合三种,他们都存在各自的优缺点,其特征如表1所示


3.3三维视景纹理库的建立

当通过互联网或其他途径获取卫星图像纹理的步骤已完成,则需要建立纹理数据库以存放获取的纹理.由于通过卫星直接获取的纹理图片可能受到了阳光、云层、电磁波的干扰,因此在卫星图像纹理在导入纹理库以前必须进行图片质量的优化处理.经过优化处理的卫星图像纹理,即可编号分别导入纹理库中,以供OpenGL进行实时调用.例如,“大襟岛”的纹理编号为“0001”,当需要对“大襟岛”地形进行卫星图像纹理粘贴时,OpenGL则会自动调用“0001”号纹理进行实时粘贴,以此保证地形与纹理的一一对应.

4基于OpenGL的三维视景实时生成

OpenGL能够提供很强的二维及三维图形的绘制功能,尤其是在三维场景的快速绘制方面,OpenGL更能体现其自身的优势.在依据电子海图信息实时生成三维视景的过程中,OpenGL在网格化数据的三维曲面生成、三维视景的实时渲染以及地形三维曲面的纹理快速粘贴等方面起着十分重要的作用.

4.1基于网格化数据的OpenGL三维曲面生成

电子海图所提供的高程信息经过了插值和网格化处理以后,则可以基于OpenGL平台生成三维曲面.这种三维曲面是以网格化的高程数据为依据所构建的无数个网格所组成的,这就是OpenGL三维网格曲面.网格曲面是电子海图信息最原始的三维化,它能够把电子海图中的地形信息完好地体现出来.

OpenGL三维网格曲面是由无数个曲面网格所组成的,相比于平面网格,此方法能保证所拟合出的三维地形曲面的光滑性,从而也会大大地提高其真实性.然而,若使用曲面网格对地形曲面进行拟合,虽然可以保证三维地形曲面的平滑性以及真实性,但在有些情况下则会增加计算量,从而降低视景渲染的实时性.目前常用的拟合曲面主要有Coons曲面、Bezier曲面和B样条曲面.因此探索并研究出合适的拟合算法使三维地形曲面的拟合精度及拟合速度达到最优无疑是该领域研究的一大重点.

4.2基于OpenGL的三维视景实时渲染技术

在三维视景的渲染过程中,为了保证渲染的实时性,可以采用双缓存技术、细节层次技术以及可见性判断方法以节省检索和绘制时间.

双缓存技术是OpenGL提供的一种图形绘制加速技术,其基本原理是提供前、后2个缓存,在显示前台缓存内容的一帧图像时,后台缓存正在绘制下一帧图像,后台绘制完成后,交换前后台缓存,不断循环,实现动态显示[4].

所谓层次细节技术(LevelOfDetail,简称LOD)就是在不影响画面视觉效果的条件下,通过逐次简化景物的表面细节来减少场景的几何复杂性,从而提高绘制算法的效率[5].该算法的特点是通过控制显示的分辨率以达到减少运算量的效果,距离视点越远的区域,分辨率越低,所显示的内容越粗糙;距离视点越近的区域,分辨率越高,所显示的内容也就越精细.常用的LOD模型主要有二叉树模型、四叉树模型以及八叉树模型.

可见性判断(VisibleSurfaceDetection,简称VSD)即计算机图形学领域三维场景绘制中的剔除问题.其主要目的是对于给定的场景和观察视点,通过遮挡关系进行快速判断,丢弃大量不需要绘制的图形对象,降低场景的复杂程度,最终实现低负荷的绘制.其主要剔除方法有3种:视域外节点的剔除方法,背向节点剔除方法以及遮挡剔除方法.可见性判断在保证三维视景实时显示方面有着十分重大的意义.

4.3地形三维曲面的OpenGL纹理粘贴

在依据电子海图信息实时生成三维视景的过程中,应用OpenGL将卫星图像纹理快速地粘贴于基于高程数据生成的三维曲面,是保证所生成视景真实性的一大关键步骤.在粘贴的过程中要充分考虑平面坐标与地理坐标的转换、卫星纹理与地形一一对应原则、卫星纹理粘贴的位置以及卫星纹理粘贴的方向.寻找出合适的纹理映射算法以满足纹理粘贴过程中准确、快速的要求.

5结束语

本文提出了一种视景实时生成新技术的构想,即依据电子海图所提供的地形信息构建三维地形模型,再应用卫星图像提供的自然纹理对三维地形模型进行快速粘贴,以便实时地生成三维视景.文中介绍了电子海图生成三维视景的基本步骤,并分别对每个步骤进行了阐述,以期对基于电子海图信息的三维视景生成技术提供一定的参考.