基于Creator的港口建模关键技术研究*

2014-04-22 09:23陈声柳
关键词:海图多边形高程

陈声柳

(集美大学 诚毅学院,福建 厦门 361021)

随着计算机技术和图形图像技术的发展,虚拟现实技术得到了飞速发展,虚拟现实已成为21世纪新兴而热门的技术。视景仿真技术是虚拟现实技术的一项重要应用,其应用广泛,已经在动漫游戏、广告宣传、建筑设计、航天模拟、船舶操纵等领域发挥了重要作用。得益于虚拟现实技术的发展,船舶操纵模拟器提供了越来越逼真的三维港口视景,很大程度上提高了船员操纵训练的临场感受。

Creator是美国MultiGen Paradigm公司推出的交互式可视化三维建模工具,其采用针对实时应用优化的OpenFlight数据格式,提供强大的多边形建模、矢量建模、大面积地形生成功能,以及各种便利的建模工具[1]。Creator的OpenFlight格式模型文件,已成为虚拟现实建模领域事实上的业界标准,其生成.flt格式的文件,可以与当前许多主流的虚拟现实开发环境兼容。与CAD等建模软件相比,Creator主要考虑在满足实时性的前提下如何生成逼真的面向仿真的大范围场景。本文主要基于实验室的船舶操纵模拟器平台,结合应用Creator实际建模的经验,介绍港口三维建模的几个关键技术。

1 原始数据转换关键技术

要构建一个港口三维模型,需要港口地形数据和三维实体数据。数据来源有纸质海图或电子海图、港口总体规划资料、港口工程设计图(CAD)及相关文档资料、地形高程数据、卫星遥感图像以及港口实地的景物照片。建模工作开始前需对这些数据进行处理转换提取建模所需的信息。

1.1 海图数据转换

一个训练港口的创建,首先需要海图数据。海图包含了港口建模所需要的主要信息,如港口的地理位置、地形的形状、边界、导航系统等。海图有纸质海图和电子海图,两种都可以获得需要的信息数据。纸质海图可以通过扫描、几何校正、数字化后提取相应的信息数据[2],纸质海图提取数据过程繁杂。相比而言,从电子海图中提取数据更为方便可靠,可以节省很大的工作量,而且S57电子海图已经开始普及,很容易获取。另外可用的还有C-Map电子海图。S57海图包含了很多信息,应用模拟器系统提供的Fitutil工具提取数据,只要提取陆地数据即可。提取后的数据导入到Creator中,由于海图数据或提取工具等原因,导入Creator中的陆地多边形必须进行编辑矫正后方可使用[3]。

1.2 CAD转换

对于已做过海图更新的码头,导入的陆地多边形就已经包含码头的形状和位置信息。未更新的码头和在建的码头则要通过工程设计图(CAD)及相关文档资料采集数据。如果码头的相关文档资料包含了码头详细的位置和形状信息,可以依据数据直接在Creator中进行绘制,否则必须通过坐标转换工具获取码头形状参数数据,将CAD中的码头各顶点参数位置转换为WGS84坐标数据。Creator支持CAD的.dxf文件格式,更为方便的是设置好CAD设计图的比例尺,保存为.dxf格式,导入到Creator中再进行移位定位,然后再依图绘制码头多边形即可。

2 数据库管理技术

Creator数据库采用树状的层次化结构来存储三维模型,按照从上到下的顺序为根节点、组节点、体节点、面节点。视景驱动软件是按照从上到下、从左到右的顺序依次遍历数据库节点,进行模型绘制。节点的层级结构和组织方式在很大程度上决定了模型数据库的实时性能。模型数据库可以按照线性结构、逻辑结构、空间结构3种形式来组织[4]。

线性结构是把所有体节点共同放在同一个组节点下,有时甚至面节点不经过体节点分类组织直接归属到组节点下。该结构形式简单,适合于单一场景,对于复杂场景来说,会严重影响场景绘制效率。

逻辑结构是将所有体节点按照模型类别分类规则分别放在不同的组节点下。例如,房屋作为体节点,所有房屋体节点归属到房屋组节点。逻辑结构模型数据库,在建模过程中便于模型编辑和修改,但会影响到模型绘制效率。

空间结构是按照模型的空间位置来组织数据库,该结构数据库虽然不利于数据库整体编辑,但是便于数据库模型的绘制。驱动系统可以快速判断模型区域是否在当前可视范围内,不用遍历数据库中所有节点,大大提高了仿真系统的运行速度。空间结构适合于大场景模型数据库。

在一般三维建模过程中,比如虚拟校园、航天发射等,数据库按照逻辑结构分类比较合适。用于模拟器训练港口三维区域为大范围场景,地形区域广阔,实体模型复杂,这给建模和模型渲染带来很大困难。数据库组织已不是一种组织结构或两种结构单纯地结合就足够了。

实际模型数据库总体采用空间结构,并充分利用外部引用技术,把整个港口区域分成各个小区域,每个小区域独立为一个.flt子文件,对于复杂的小区域在其子文件中进行二次细分,每个小区域范围保留大于2nm×2nm,然后在各个简单小区域文件中进行实体建模。各个子文件模型数据库按照逻辑结构分类,在小区域场景中的众多小模型独立归属于一个LOD节点,便于系统地绘制和剔除。航标助导航系统作为一个独特的系统,不归属于任何一个区域,作为独立.flt子文件,同样由外部引用节点挂载。.flt主文件仅挂载各个子文件的外部引用节点,不包含任何细节模型。如此组织数据库可有效地缓解计算机的解算和渲染压力,加速建模进程,还便于港口模型的管理以及后期港口码头的增加修改。图1为数据库组织结构。

3 建模的关键技术

3.1 地形建模技术

(1)Creator自带地形生成工具制作地形。描述地形的原始数据包括数字高程模型、文化特征数据及地表的数字正射影像数据[5]。地形模型数据库构建中首先要获得真实地形的高程数据。可提供高程数据的资源有数字高程模型DEM、数字地形高度数据DTED或第三方资源。Creator提供的多种转换工具(readusgs,image2ded,float2ded等)将这些资源转换成其专用数据DED标准格式。Creator的Terrain模块还可以采用基于地理经纬度坐标的纹理映射技术,将数字正射影像作为纹理映射到地形表面,从而形成与真实地貌一致的地形模型。

此处以ASTER GDEM高程数据为例。ASTER GDEM是目前公开的最高精度高程数据。下载的高程数据为img文件,通过Global Mapper转化为DEM文件,利用Creator的DED转化工具转化为DED文件导入Creator中。在打开的地形创建窗口中选择需要生成地形的区域,对高程等高线进行适当插入编辑创建LOD,经地图投影类型选择和地形转换算法选择以及最小三角化面片大小设置,即可生成三维地形。最小三角化面片大小设置为最高层细节下的面片设置,关系到整个地形精度以及三角面片数量[6]。图2为Creator的创建地形窗口截图,实例选取的是ASTER GDEM经度118°E、纬度24°N的高程数据,图中显示的为选取放大后的厦门港区域。

图1 数据库组织结构Fig.1 Database organization

图2 Creator的地形创建菜单Fig.2 Creator terrain menu

以这种方式生成地形,由于数据精度原因,很多的小岛屿没有生成,对那些岛屿必须进行手动建模。其次,Creator生成的地形三角形面片包括水面部分,删除这些面片后岸线锯齿化严重,必须进行矫正。由于高程数据的中心点和海图导入的教练站海图的中心点不同,还必须对生成的三维地形进行移动定位、区域截取等工作,才能和教练站中的海图数据相对应。如图3所示为Creator生成的地形。

图3 Creator的地形创建工具生成的地形Fig.3 Terrain built by Creator menu

(2)导入高程数据直接三角化的方法。在从海图导入的flt中仅保留陆地节点,在陆地多边形区域上,对高程数据进行抽样提取,导入到Creator中,导入后的高程数据以点状形式沿垂直方向分布于所选各个陆地或岛屿多边形上。SRTM3是NASA公开的3弧秒(90m)精度高程数据,是目前使用最多的高程数据。90m精度SRTM3数据作为地形原始数据,不需要抽样提取,只要进行定位直接导入Creator即可。如图4所示为陆地多边形上导入高程数据。

图4 陆地多边形上导入高程数据Fig.4 Elevation data import on land polygon

对于部分没有高程数据的岛屿,参考海图上的经纬度和高程信息,进行手动增加。高程数据编辑完后,对陆地多边形和高程数据点进行三角化。对生成的地形模型进行再次编辑,在背向港口以及山峰的另一侧,船舶以任何角度向岸线靠近视线都无法达到的地形面片可以删除;如此可以有效减少地形面片数量,提高模型运行速度。由于三角化过程把陆地面片包括进去了,所以生成的地形含有更多的信息,岸线也与海图精确对应。如图5所示为直接三角化生成的地形。

图5 导入高程数据三角化生成的地形Fig.5 Terrain built by triangulation

直接参与三角化生成的岛屿会与实际相差较大,对于航行不作重大参考的岛屿可以采取这种方法。个别独特重要的岛屿也可以进行独立建模,但是要花费更多的时间和精力,还要占用更多的模型面片数量。

3.2 实体模型建模技术

实体模型建模是三维建模的基础,实体模型丰富了场景的细节,同时增加了场景的复杂度。Creator提供模型结构、材质、色彩、纹理等的选择处理,以增加模型的逼真度,同时提供了降低模型复杂度的关键技术,这些技术并不以降低模型逼真度为代价,个别更有利于模型细节的表达。Creator实体建模技术主要有以下几方面。

(1)层次细节(LOD)技术。LOD是一组代表模型数据库中同一物体而又具有不同细节程度的模型对象。不同细节程度版本模型的多边形复杂度也不一样,细节程度越高模型对象所包含的多边形数量也越多[7]。实体建模中会遇到许多桥吊、灯塔等含大量多边形的复杂模型。如果全部加载给系统会带来很大负担,使用LOD技术后,只有在视点接近时才进行模型精细绘制,其他情形下则用低分辨率模型进行替换。这样即保证了场景的视觉效果,又提高了场景运行速度。对于码头上的碰垫、缆桩也应用LOD技术进行处理,船舶视点接近时绘制,远距离情况下剔除。

(2)实例化(Instance)技术。一个实例指模型数据库中某个模型对象的一个参考副本。模型对象的实例跟模型拷贝看起来一模一样,但实例并没有复制模型对象,仅仅是指向数据库中模型对象的指针。通过实例化创建模型副本并不增加模型数据库的多边形数量,节省了内存和存储空间,还改善了实时系统的处理能力。实例化技术是数据库中房屋、桥吊、缆桩、碰垫等重复实体模型的关键建模技术。

(3)公告牌(Billboard)技术。公告牌指在实时仿真过程中模型多边形始终保持面对视点。常用于创建场景中类似于电线杆或树木等具有对称性的物体。比如,在场景中创建一棵树,只要以原点为中心,建立适当大小的垂直矩形平面,贴上树木的透明纹理,系统漫游时就可以看到一棵很逼真的树。

(4)透明纹理技术。透明纹理技术是通过纹理技术和融合技术共同实现的。融合技术指通过源和目的地颜色值相结合的融合函数,使最后的效果中部分场景表现为透明。透明纹理技术在三维场景构建中应用广泛。房屋建筑和桥梁的栏杆、路灯、树木等景观都可以应用透明纹理建模。场景构建中树墙纹理的应用,不但可以很大程度上减小模型复杂度,还能得到比三维建模更逼真的视觉效果。图6为树木和树墙纹理。

图6 透明纹理Fig.6 Transparent texture

4 结语

港口三维是在电子海图技术的基础上制作的三维模型,其精确地给出港口地物、地形和地貌环境,是个大场景复杂数据库。对大规模仿真场景的构建,除了要达到仿真的逼真度要求外,还要考虑系统资源的占用性和实时性。Creator作为大场景模型数据库构建软件的佼佼者,拥有强大的可视化建模技术、良好的扩展性和兼容性,很好地解决了模型视觉效果和系统资源消耗之间的矛盾,实现了真实性和实时性的平衡。

[1] 仇小鹏,杨平利,蒋阳.仿真建模利器—MultiGen Creator[J].计算机仿真,2007,24(5):279-282.

[2] 刘如飞,季迎春,洪鹏煜,等.基于 Multiguen Creator的连云港市港口三维场景可视化研究[J].海洋信息,2009(4):1-4.

[3] 陈声柳.Polaris船舶操纵模拟器练习海域的设计制作[J].广州航海高等专科学校学报,2011,19(4):21-23.

[4] 王晓东,毕开波.基于 Multiguen Creator的飞行场景模型数据库优化技术[J].系统仿真学报,2007,19(12):2716-2719.

[5] 张曦,王国权,龚国庆.基于 Multiguen Creator场景模型的建立[J].北京机械工业学院学报,2006,21(2):21-25.

[6] 王乘,周均清,李利军.Creator可视化仿真建模技术[M].武汉:华中科技大学出版社,2005.

[7] 张帆,史琼芳,达汉桥.Creator应用于虚拟城市三维建模的关键技术与实践[J].测绘工程,2005,14(4):55-57.

[8] 刘付程,阮亚念,冯丽仙,等.基于ArcGIS的连云港港区海陆一体化三维地形建模[J].淮海工学院学报:自然科学版,2012,21(1):55-58.

猜你喜欢
海图多边形高程
多边形中的“一个角”问题
8848.86m珠峰新高程
纸海图AI小改正制作模式探讨
多边形的艺术
解多边形题的转化思想
多边形的镶嵌
少林功夫拳(三)
GPS控制网的高程异常拟合与应用
点亮兵书——《筹海图编》《海防图论》
电子海图在内河船舶综合导航系统中的应用探讨