作者:核心期刊目录查询发布时间:2016-03-02
本篇计算机论文阐述基于VPB的大规模地形构建办法。《计算机工程》以最快的速度、科学求实的精神,精选刊登代表计算机行业前沿科研、技术、工程方面的高、精、尖优秀论文。贯彻党的“双百”方针,繁荣科技创作,促进国内外学术交流,探讨和传播计算机科学的理论和实践,加速和促进我国计算机事业的发展。
在地理信息系统和仿真系统开发中,对大规模真实地形进行高逼真度仿真起到了至关重要的作用,但目前许多图形引擎实现较为困难。提出了一种利用VPB构建大规模高精度地形的方法,并对其构建的地形的组织结构进行分析。
关键词:VPB;地形;场景创建;仿真
在地理信息系统和仿真系统开发中,对大规模真实地形进行高逼真度仿真起到了至关重要的作用。虽然目前许多图形引擎实现了对大规模地形的仿真,但其构建的地形大多由计算机虚拟出来,而非真实世界,主要原因是此类图形引擎采用的地表纹理并不是真实地形的卫片。而有些图形引擎(如CTS和 VegaPrime)虽然可以采用真实地形卫片,但又会出现由于调度资源量巨大,导致运行不够流畅等问题。为了解决该问题,提出一种利用VPB构建大规模高精度地形的方法。
1OSG和VPB简介
OSG(OpenSceneGraph)是一个开源的场景图形管理开发库,主要为图形图像应用程序的开发提供场景管理和图形渲染优化功能[1]。 OSG采用可移植的C++作为开发语言,实现了对OpenGL底层渲染API的封装,具有良好的跨平台性,同时极大地提高了三维图形应用的开发效率。目前 OSG在虚拟现实、科学计算、航空航天、人工智能、游戏、视景仿真、可视化等方面应用广泛[2]。
OSG在地形创建方面提供了VirtualPlanetBuilder(简称VPB)工具。VPB是OSG中提供的专门用于创建地形的工具,它使用著名的GDAL库读取各种地理图像和高程数据,不仅可以建立一个小面积的地形数据库,甚至可以建立整个地球的大型分页数据库。它能够很好地支持地形数据的动态载入(数据动态分页PagedLOD),因此在OSG中能非常流畅地运行。
同其它开源软件一样,利用VPB进行大规模场景创建同样也存在编译过程复杂、相关资料稀缺等问题。对于VPB的编译可按如下几个步骤进行:
①获取VPB源代码。获取VPB源代码的地址为:http://www.openscenegraph.org/projects /VirtualPlanetBuilder/。在下载VPB源代码时,还需要注意VPB版本所对应的OSG版本;②获取GDAL插件,GDAL插件可以从GDAL的官方网站http://www.gdal.org上下载;③使用CMake完成配置,并生成解决方案;④利用编译器(如VS2010)编译 VPB,最终生成VPB的可执行文件。
2高程数据和影像数据预处理
2.1高程数据获取与处理
数值高程模型(DigitalElevationModel,简称DEM)是用一组有序数值阵列形式表示地面高程的一种实体地面模型。其数据源及采集方式主要是地面测量和航空航天测绘。获取高程数据的途径很多,对于高精度的高程数据需要从当地测绘院申请,对于精度要求不是很高的高程数据可以直接从国家地理信息网站下载。目前可以获取的精度有30m和90m,由于30m精度的高程数据地面凹凸不平,因此本文采用了90m精度的高程数据。对于下载的数据还需作进一步处理,如重新设定坐标系统、分割和融合、锐化增强等。这些操作都可以采用专业的GIS软件来实现(如ERDASIMAGINE等)。
2.2影像数据获取与处理
影像数据(地表纹理)获取与处理要比高程数据复杂得多,首先需要采集影像数据,然后对其进行拼接、坐标校正和切割分块等处理。影像的获取可以向专业的卫片提供商购买,也可以通过相关公司购买软件,自行从网络下载。但无论从何种渠道获取的影像数据都通常无法和高程数据完美地匹配,尤其是国内的卫片还存在偏移问题,因此还需进行一项极其重要和繁琐的工作——坐标校正。通常坐标校正也是通过GIS软件(如ERDASIMAGINE和 GlobalMapper)来实现。
3大规模地形文件构建
3.1基于VPB的地形构建
在完成了以上两步后,对处理好的高程数据和影像数据使用osgdem命令行,并配置好详细参数,即可生成OSG所支持的“.ive”或 “.osga”格式。本文采用的命令行如下:osgdem-tT.tif-geocentric-dD.tif-l8-v10-oT.ive,其中 “-t”指定要处理的纹理文件,“-d”指定要处理的高程图,“-l”指定生成模型的LOD等级,“-v”指定垂直比率,“—geocentric”设置以地心为坐标的坐标系,”-o”指定所产生的数据页的输出文件名。由VPB生成地形文件的过程会根据高程数据和影像数据的大小以及生成层级的不同而耗时不同,最后会在”-o”参数所指定的目录中产生一系列按照四叉树结构命名的“.ive”文件,这些就是用于地形仿真的地形数据库文件。最后还可以采用 osgarchive工具将生成的各地形文件打包为一个单独文件。
3.2地形文件组织结构分析
由VPB生成的地形文件中每个节点代表一块地形,每个节点的影像数据大小为256×256像素。在组织结构中,最顶端为 “T_L0_X0_Y0_subtile.ive”文件,它是四叉树的根节点,该节点相当于整个地形的缩略图,同时也是所有地形文件的头文件,在调用该地形数据库时只需调用该文件即可;其次是跟节点的下一级节点“T_L1_X0_Y0_subtile.ive”、 “T_L1_X0_Y1_subtile.ive”、“T_L1_X1_Y0_subtile.ive”和 “T_L1_X1_Y1_subtile.ive”节点,它们所表示的面积总和与上一级节点相同,但地形表现的精度为上一级的2倍。
每个“*.ive”文件在存储了地形信息的同时还存储了该地形文件的下一级4个子地形块的结构信息,地形文件的四叉树结构如图1所示。由于VPB 生成的地形数据文件采用了四叉树结构进行组织,因此将该格式用于OSG的场景渲染,可以直接由OSG引擎本身进行拣选,从而有效、合理地进行渲染。
在OSG进行渲染的过程中会根据摄像机所在位置(如图2所示),调用不同位置和级别的地形文件进行渲染,而其它不可视的地形文件则不会被渲染到显示器中,从而大大减少计算机的资源消耗,实现了对任意级别和任何规模的真实地形的高精度渲染,同时也保证了渲染的流畅性,这就是OSG地形渲染算法(PagedLOD)的基本原理。
4结语
在本研究中,利用VPB制作了面积为400km×400km的我国北方某地的地形数据库,其局部效果如图3所示。该地形无论在精度、规模还是执行效率上均能满足地理信息系统和仿真系统的开发要求,为此类项目的开发打下了坚实基础。基于VPB构建的地形结合OSG图形渲染引擎,采用了如坐标系转化、分块调度、裙拼接、四叉树管理和多重纹理等先进的地形渲染处理关键技术,在理论上能够实现对任意规模和精度的地形进行仿真。基于VPB的开源软件 osgEarth目前已实现了对整个地球任意精度的仿真。因此,VPB在地形仿真领域具有良好的应用前景。