APP下载

基于Vega Prime的飞行视景仿真研究与应用

2015-04-23钟文武周新力金慧琴

指挥控制与仿真 2015年6期
关键词:视景纹理网格

钟文武,周新力,金慧琴,张 烨

(海军航空工程学院,山东 烟台 264001)

数字地图和图像显示是飞行器任务规划系统(Mission Planning System,MPS)的重要组成部分。目前,我国的MPS主要是以二维图形图像来展示战场态势和地形环境,随着虚拟现实(Virtual Reality,VR)技术的发展,现代先进的MPS应该具有对空间信息进行可视化和动态分析处理的能力[1]。视景仿真是VR技术的一种最重要的表现形式,它通过三维图像技术模拟各种真实的作战环境,实现了用户与作战环境直接进行自然交互[2]。将视景仿真技术应用于任务预演系统,使用户在三维虚拟世界中预演任务规划,与传统二维静态的显示方式相比,具有明显优势:1)在显示内容上,传统MPS主要是对地形、威胁进行描述,而采用视景仿真技术的任务预演系统具有三维地形、三维电磁环境、气象环境、武器装备作战场景等显示功能;2)在显示方式上,传统MPS以表格、文字和图片等二维方式来显示战场信息,而采用视景仿真技术的任务预演系统可以通过声音、三维图像等多维形式预演作战效果;3)在任务预演效果评判上,传统MPS主要依人工计算,采用视景仿真技术的任务预演系统利用计算机强大的计算和显示能力,为作战效能评估提供直观的支持,以便指挥人员做出正确决策,使规划结果更全面、准确和真实。

视景仿真主要分为三维模型建模、场景驱动管理和图像显示三部分。其中,三维模型建模主要包括数据采集、地景模型建模、三维实体模型建模、场景构造、纹理设计制作等,场景驱动管理主要包括场景驱动、模型调度处理、大地形处理等,图像显示主要包括实时三维场景显示和交互操作。目前比较常用的视景仿真应用工具是加拿大Presagis公司推出的专门用于视景仿真的产品,包括 Creator、Terra Vista、Vega Prime 等。本文以场景驱动渲染工具Vega Prime为核心,结合3D实体模型开发工具Creator和三维地形模型开发工具Terra Vista,快速完成三维场景建模和视景应用开发。

1 仿真工具介绍

1.1 Creator

Creator是一款业内一流的三维实体建模工具,其基本模块为用户提供了一个功能强大、交互式的可视化建模环境,用户可以快速地创建三维模型。它的主要功能包括:多边形建模功能、模型数据库控制功能、纹理映射功能,多细节层次(LOD)建模等。其生成的数据格式OpenFlight为视景仿真业内的标准格式,可以直接加载到Presagis的其他产品中。虽然Creator本身自带地形建模工具,但是功能相对较弱,实时性也较差,因此Creator在本文中只用作单体建模,如飞机、车辆、建筑等模型。

1.2 Terra Vista

Terra Vista是基于Windows平台的实时三维地形模型生成工具,用户可通过简单易用的图形界面快速生成大规模地形。应用Terra Vista完成大范围地形生成主要有以下特点:1)文化特征的处理:引进了点、线、面三种矢量工具制作复杂几何图形的方法,对文化特征数据可以进行批量生成和处理;2)特殊的地理纹理结构:支持最普及的卫星影像发布格式(geotiff),并可自动与高程数据坐标对准和进行地学标准化;3)支持多种输出格式:输出格式包括OpenFlight、TerraPage和MetaFlight,其中后两者可直接应用于Vega Prime的大范围地景数据库管理模块。

1.3 Vega Prime

Vega Prime是基于VSG(Vega Scene Graph)的实时三维视景开发工具,VSG是一种先进的跨平台场景图形API,其底层为OpenGL,因此具有高度的可扩展性。同时,Vega Prime还提供强大的图形用户界面 Lynx Prime,大幅缩减了源代码编写,使用户能够简单迅速地创建、编辑和运行复杂的三维仿真应用,极大地提高了软件开发效率[3]。除了Lynx Prime和VSG两个基本模块外,Vega Prime还提供了多个针对不同应用领域的可选模块。

2 视景仿真系统开发

系统开发主要分为数据准备与处理、三维场景构建和场景驱动管理三部分,基本流程如图1所示。

2.1 数据准备与处理

构建逼真的三维地形需要包含各种丰富的地形地貌数据信息,这些数据可以分为以下几类。

1)地形高程数据

地形高程数据是三维地景模型生成的基础。最常用的高程数据为数字高程模型(Digital Elevation Model,DEM)。Terra Vista支持多种版本的 DEM,本文仿真实验所使用的DEM数据是美国航天飞机雷达地形测绘计划(Shuttle Radar Topography Mission,SRTM)获取的30m和90m两种分辨率的V4.1版本DEM数据。

图1 仿真系统基本制作流程

2)地形纹理数据

地形纹理反映了地表的覆盖物情况,为地形添加纹理数据能使生成的三维地形更加逼真。虽然Terra Vista中包含了大量的纹理贴图,但对于大范围地形来说这些纹理数据无法满足实际需求,因此一般采用添加卫星影像数据和航拍图像作为地形纹理的方法。Terra Vista支持包含坐标信息的图像数据的直接导入,并可自动实现坐标对准。对于不含坐标信息的航拍图像,可通过Global Mapper软件为其添加坐标信息,并输出为geotiff格式,再导入Terra Vista,便可自动与DEM匹配。本文所使用的纹理数据有两种:一种是直接从卫星地图下载器下载的15m分辨率卫星影像,另一种是机场附近的65cm高分辨航拍图像。

3)文化特征数据

文化特征数据指地物模型,包括自然和人工地物,例如河流、湖泊、道路、建筑等,添加文化特征数据能使三维场景更加真实。在Terra Vista中,地物模型以矢量数据的方式添加到地形中。Terra Vista提供了“点”、“线”、“面”三种制作矢量数据的模板,“点”主要用来建立离散的地物,如单幢建筑、树木、汽车等,“线”主要用来建立狭长的地物,如河流、道路等,“面”主要用来建立成片的地物,如居民区、湖泊、森林等。

4)3D模型

3D模型的加入能丰富地形场景,增强三维效果。Terra Vista自带了一个3D模型数据库,包含了一些常用的3D模型,对于数据库中没有的模型,可以用Creator制作,输出为flt格式,再添加到Terra Vista的3D模型库中。

2.2 三维场景构建

为了满足不同飞行区域对地形精度的不同要求,本文将地形分为两个区域:机场附近区域和高空飞行区域。机场附近区域的面积小,但飞机飞行高度低,因此对生成的地形逼真度要求较高,本文对这块区域采用高精度建模,使用30m精度的DEM和65cm分辨率的航拍图像作为数据源,同时添加文化特征数据和3D模型。高空飞行区的面积大,为了减小系统开销,采用90m精度的DEM和15m分辨率的卫片作数据源,同时适当降低地形块的多边形数量。使用Terra Vista构建三维地形的过程如下:

1)将生成地形模型所需要的源数据,如高程数据、纹理数据、3D模型等,导入Terra Vista工程,系统自动对资源数据进行组织。

2)通过数据导入向导,在数据导入的过程中完成各种参数的设置:①投影方式选择平坦地球(Flat Earth);②计算地形区域采用自动计算;③应用类型选择地面模式(Ground Vehicle);④输出格式为 Open-Flight和MetaFlight;⑤数据库参数设置:根据实际需求和系统硬件配置对以上参数进行设置,包括视野范围、LOD层数、最大距离、网格大小、多边形数等。

3)绘制矢量数据:根据机场附近区域实际地物所在位置使用矢量编辑器绘制矢量数据,并与三维模型相关联,最后保存为vec格式。高空飞行区包含海洋部分,因此需要用“面”矢量工具创建海洋区域,并将其属性设置为ocean,这样在Vega Prime中调用vpMarine模块时这部分区域将被动态海洋替换。

4)设置地形数据输出区域,生成相应格式的三维地形。

采用以上步骤生成的三维地形如图2所示。

图2 Terra Vista生成的三维地形

2.3 场景驱动管理

场景驱动管理是飞行仿真系统的核心部分。Vega Prime是一款专用于场景驱动管理的精华渲染软件,不仅可以实现用户与场景的交互操作,还提供大量高级仿真功能。通过LynX Prime编辑器,用户可以添加类的实例对象,并为这些实例对象定义参数,这些参数存储在一个应用程序的实例框架中,形成一个应用程序配置文件(Application Configuration File,ACF)。ACF文件包含一个Vega Prime应用程序初始化和运行时所需的信息。本仿真系统配置的ACF文件主要包括以下功能模块。

1)大场景地形管理模块

传统加载地形数据的方法是将flt地形文件一次性载入内存,这种方法相对简单,但对大规模的地形场景来说,会导致内存被大量占用且预加载时间特别长,这对用户来说无法忍受。为提高系统渲染性能,Vega Prime提供了专用于大规模和复杂地景数据库管理的模块LADBM,基于XML MetaFlight格式的LADBM模块能够在动态页面调用时确保地景数据库装载和组织的最优化。LADBM的核心是多层网格结构(Geometry Grid Datasets)。多层网格结构实际上是将地形划分为具有不同细节层次的地形网格,如图3所示。同一片区域,低细节层次的部分包含在较高的细节层次中。

图3 具有3层LOD的网格结构

LADBM模块的工作流程如下[5]:

①判断网格坐标系统与地形场景坐标系统是否一致,如果不一致则将地形场景坐标转换到网格坐标;

②从LOD的最低层次开始,判断各个网格与调度中心点的距离关系。如果最接近调度中心点的网格不在调度范围内,则提交一个调度该网格的请求;

③判断所有的相邻瓦片是否满足调度范围直到超出调度范围,提交调度所有满足条件的网格的请求;

④调出那些不再满足调度范围的网格;

⑤读取指定的地形网格并分配内存进行初始化;

⑥进入LOD的下一个层次,重复②-④,直到所有层次都被处理。

2)碰撞检测模块

碰撞检测是飞行视景仿真中一项必不可少的功能,以避免出现飞机穿过建筑或地面等不真实的情况。Vega Prime中定义了抽象类vpIsector来配置和查询碰撞检测,并且派生出了多个具体的检测器。每种检测器都以其为中心向四周扩散出一些线段来进行检测,当这些线段和目标物体发生相交时系统便认为碰撞发生。本系统主要使用了监测海拔高度的vpIsectorHAT和描述瞄准线的vpIsectorLOS两种检测器来检测飞机与地面和建筑的碰撞。

3)路径模块

路径模块为用户提供了一种快速方法,用来定义飞机的航路点参数和配置导航器,飞机或观察者可以在导航器的控制下沿着指定路径在场景中运动。本文使用LynX Prime中提供的Path Tool工具定义航路点和导航器。航路点参数包括坐标(X、Y、Z)和姿态(H、P、R)6个参数。导航器定义了飞机如何经过导航点,包括速度、方向、导航点的连接方式以及到达最后一个导航点时采取的动作。

4)海洋模块

Vega Prime Marine模块能方便地在地形中添加逼真的动态海洋。该模块提供了一个高性能的波动模型来控制海洋状态,包括海水的运动方向、浪高、波长等。由于在用Terra Vista生成地形时划定了海洋区域,因此在调用vpMarine模块时该区域会被替换为动态海洋。

5)环境模块

Vega Prime中的环境模块vpEnv用来模拟各种自然环境。通过输入日期、时间、经纬度等参数,系统能自动计算出当前环境。此外,还可以向系统中添加各种天气特效以增强仿真效果。本仿真系统模拟了白天、夜间两种时间状态和雨、雪、雾、雷电4种特殊天气情况。

2.4 生成应用程序

配置好ACF文件后,将其导出为CPP源代码,并在VS2005环境下编译生成Win32应用程序。整个应用包含了配置Vega Prime应用的API,包括初始化、定义、配置和退出仿真循环的API命令和类,基本的Vega Prime程序框架如下:

3 仿真实例

本仿真实例的目标是建立不同环境下的飞行仿真三维视景,包括驾驶员动态三维视景、飞行轨迹的动态三维视景、飞机着陆着舰三维视景等。仿真的硬件平台为PC机,处理器为AMD Althlon II X2,主频2.90GHz,4G内存,NVIDIA GeForce显卡,128M显存。绘制视野范围分别为0m~100m,100m~500m,500m~1000m,仿真结果如图4、5、6所示。由仿真结果可以看出,该系统场景逼真,运行流畅,能较好地模拟作战飞行任务。

表1对比了采用传统加载flt模型和纹理与采用LADBM模块动态加载mft文件两种渲染方法系统的开销情况。由表1可以看出,采用LADBM方法加载地形的速度明显优于直接加载flt文件,虽然在不同LOD上采用LADBM会增加时间消耗,但在不影响画面效果的情况下换来的是内存的大量释放,这对大场景实时漫游来说是值得的。

表1 大场景渲染方法对比(表中时间单位ms,内存单位M)

图4 飞行轨迹动态三维视景

图5 动态海洋和飞机着舰视景

图6 多通道三维视景

4 结束语

数字地图和图像处理技术作为MPS的重要组成部分,将逐渐摆脱传统静态的、二维的约束,而向动态多维发展。本文以Creator、Terra Vista和Vega Prime等仿真工具为基础,研究了飞行仿真中大范围三维地形的制作、大地形管理、场景驱动等关键技术,并以具体实例设计了一个飞行任务预演仿真系统,在MPS上具有一定的实际应用价值。

[1]唐金国.美军MPS的发展现状和关键技术[J].火力与指挥控制,2004,29(5):4-6.

[2]高颖,郭淑霞.虚拟现实视景仿真技术[M].西安:西北工业大学出版社,2014.

[3]王孝平,等.Vega Prime实时三维虚拟现实开发技术[M].成都:西南交通大学出版社,2012.

[4]田军良,谢云开,唐小贝,等.基于Terra Vista的真实大地景模拟仿真[J].指挥控制与仿真,2013,35(1):83-86.

[5]姚凡凡,梁强,许仁杰,等.基于Vega Prime的三维虚拟战场大地形动态生成研究[J].系统仿真学报,2012,24(9):1900-1904.

[6]马彦军.基于虚拟现实技术的战场仿真系统研究[D].长沙:国防科技大学,2006.

[7]Presagis Inc.Terra Vista 6.2 Tutorial:Getting Started[M].Presagis Inc,2011.

[8]Presagis Inc.Vega Prime GUI tutorial[M].Presagis Inc,2008.

[9]Presagis Inc.Vega Prime round earth marine terrain development tutorial[M].Presagis Inc,2008.

[10]Presagis Inc.Vega Prime programmer’s guide[M].Presagis Inc,2008.

猜你喜欢

视景纹理网格
虚拟现实技术在游戏设计中的应用及研究
基于BM3D的复杂纹理区域图像去噪
某炮模拟训练系统中三维视景的设计与实现
追逐
使用纹理叠加添加艺术画特效
基于预测和双缓冲区的直升机视景仿真
重叠网格装配中的一种改进ADT搜索方法
TEXTURE ON TEXTURE质地上的纹理
消除凹凸纹理有妙招!