基于Genesis的飞行模拟视景仿真系统开发

2021-03-05 07:55:56姚嘉陵
指挥控制与仿真 2021年1期
关键词:视景纹理实体

元 凯,于 澜,姚嘉陵,于 萍

(1.空军研究院特种勤务研究所,北京 100195;2.中国人民解放军国防大学,北京 100091; 3.中国人民解放军94926部队,江苏 无锡 214028)

视景系统是飞行模拟器的重要组成部分,用来为飞行员提供逼真飞行训练任务场景,包括飞行过程中座舱外空中、地面、海上逼真的模拟景象,同时能够在各种气象条件和不同飞行参数的情况下显示出对应视觉效果,使飞行员产生身临其境的感觉,满足实时动态飞行模拟训练要求。众多的飞行模拟仿真系统中,视景成像系统场景的内容是否丰富、特效是否逼真、场景是否清晰、人机交互是否友好等方面都影响到飞行训练的效果。

视景仿真软件主要有Vega Prime、Mantis、Unity 3D、Open ScenceGraph(OSG)、Genesis等,其中Vega Prime使用较为广泛,文献[1-9]使用Vega Prime进行飞行视景仿真设计,文献[10]采用Mantis对某型直升机视景系统进行设计与实现,文献[11]采用Unity 3D进行三维视景仿真,文献[12-13]基于OSG进行飞行视景仿真系统设计与实现。目前,国内利用Genesis进行飞行模拟视景仿真研究还较少。

1 Genesis特点分析

Genesis是Diamond Visionics公司开发的实时动态视景仿真软件,Genesis系列产品包括Genesis RTX(实时渲染引擎)、Genesis IG(多通道图像生成器)、Genesis AM(xml项目配置和预览工具)及Genesis SDK(软件开发工具包)。与目前行业内其他视景仿真软件功能对比如表1所示。

Genesis主要有如下特点:

1)地景库的快速创建与实时更新

Genesis充分利用最新的GPU架构和多核处理器性能,无须传统的离线数据库编译,直接读入GIS源数据(包括矢量数据、三维模型数据、图像数据、卫星遥感数据和高程数据),实时生成、修改、校验三维视景。对地景库进行实时渲染时,只需要对场景内发生改变的局部数据组件进行更新。例如,新的航空或卫星图像能够在几分钟之内嵌入数据库中,而不需要对全范围的地景库进行重建。这就节省了预编译时间和成本,实现飞行训练场景的所见即所得。

表1 部分主流视景仿真软件功能对比

2)局部气象的定制仿真

Genesis的气象仿真模块不仅可以完成传统的为全区域飞行场景只生成一种气象类型的仿真,还可以依据历年真实气象数据或典型气象特征数据,按照飞行任务气象预案想定,在特定时段、特定飞行区域,实现包括大气温度、湿度、密度、压力、风速风向、云、雾、雨及能见度等局部气象环境仿真,大大增加了飞行环境的复杂多变性,为构建贴近真实环境的飞行训练仿真提供有力的技术支撑。

3)红外传感器仿真

Genesis的红外传感器仿真模块采用JRM SigSimRT的红外成像仿真技术,利用场景中的可见光纹理和与其匹配的材质属性,获取物体的红外辐射特性,合成得到最终的可视红外场景,实现对红外热像仪(FLIR)和夜视仪(NVG)三维场景的真实模拟仿真。

此外,Genesis充分利用场景逼真度增强技术,通过大规模实时阴影/倒影、动态草/树、车流动态灯光、照明灯光、积雪场景等特殊效果渲染绘制,有效提升了视景成像系统三维场景的逼真度和沉浸感。同时,Genesis采用全球地理模型,飞行场景基于经纬度坐标绘制,具有唯一的地理坐标。这一特性确保了飞行位置坐标与飞行导航系统坐标精确地保持一致,提供了一个无边界飞行环境,解决了飞行转场训练的困难,可以说Genesis在军事领域的应用具有较大前景。

2 系统组成及功能

2.1 系统结构组成

如图1所示,飞行模拟视景仿真系统主要由视景数据库、视景驱动软件、教员控制台、网络服务器、多通道图像生成器、成像显示终端等组成。

图1 视景仿真系统结构组成

其中视景数据库由地理环境场景数据、重要军事目标数据、特殊效果数据等组成。由Genesis AM将处理好的数据源(矢量、模型、图像和高程源)进行相关配置。

视景驱动软件是通过C++和Genesis SDK进行开发的应用程序,对场景中实体对象的位置、姿态、状态等信息进行解算和控制。

教员控制台可以设置当前的时间、飞行能见度、天气类型等虚拟场景必要的环境信息,也可以设置飞行课目、起落机场等地景调度信息。

网络服务器负责接收和转发模拟器飞行控制程序提供的空间位置信息、教员控制台设置的时间和气象信息、局域网内其他模拟器的弹道数据信息、碰撞数据信息以及视景驱动软件的控制信息等。

多通道图像生成器,通过图形平台Genesis IG调用由Genesis AM配置和Creator生成的地形和模型数据,采用Genesis RTX引擎进行实时渲染,最终通过硬件平台输出到显示终端。

成像显示终端将视景画面最终呈现出来,可通过显卡和融合机等硬件进行单通道或多通道显示。

2.2 系统主要功能

系统通过网络服务器实现视景驱动软件和成像计算机的信息交互,飞行控制程序和教员控制台程序将信息通过网络服务器传递给成像计算机,而网络服务器将成像计算机返回的数据按需转发给视景驱动软件和模拟系统其他设备,整个过程基于Genesis RTX引擎进行虚拟场景的实时绘制。其主要功能如下:

1)实时绘制真实地形、大气环境、建筑模型等基本场景;

2)按需调用起降机场、飞机、汽车、坦克等模型数据;

3)绘制云、雨、雪、雾、冰雹等多种天气现象;

4)绘制爆炸、导弹轨迹、烟雾、火焰等特殊效果;

5)黄昏、夜景、湿跑道、夜航灯光效果的显示;

6)空中、地面和水上等典型固定和机动目标的模拟,碰撞效果真实准确;

7)飞行和观察视角的控制和切换。

3 视景数据库综合构建

视景数据库是用来储存记录地理信息、文化信息和模型信息必要的数据库[5-6]。飞行模拟视景系统视景库主要是为飞行员提供逼真的舱外模拟景象,包括各种气象条件、不同飞行参数下的视觉效果,空中、地面、海上军事机动和固定目标运动特性。

3.1 地理环境场景数据库

根据飞行航线以及目标分布的特点,针对不同飞行高度和视点重视程度进行动态多分辨率纹理设计,集成卫星遥感数据、高程数据、纹理贴图以及各类目标模型等数据源,设置合适级别的地景库LOD参数、正确的投影方式,以便观察和与地景库相匹配,最终生成视景数据库文件。Genesis地景数据库的制作流程如图2所示。

图2 Genesis场景数据库制作流程

1)卫星遥感影像数据的处理与导入。对卫星遥感数据进行精准校正、分割处理,消除卫星影像中云雾和其他影响到视觉效果的瑕疵,最大程度还原影像数据的真实色彩。最后将卫星数据由TIFF格式转化为ECW格式,通过Genesis AM数据库工具导入地景工程文件中。

2)文化矢量信息提取与导入。针对植被、城镇建筑、河流湖泊、海、道路等多种地物地貌文化信息,提取制作相应的矢量数据,并以点、线、面三种SHP格式,通过Genesis AM数据库工具导入Genesis地景工程文件中并配置文化矢量信息各项参数,选取矢量对应的模型素材,设置相应的长宽高尺寸、分布密度、灯点亮度等细节参数。

3)高程数据的处理与导入。检索并去除高程数据中的坏点,将数据格式转化为DTED格式,通过Genesis AM数据库工具导入地景工程文件中。

4)三维机场模型制作与导入。依据机场建筑纹理、卫片、机场平面图等素材数据,按照1∶1比例构建机场三维模型,包括主跑道、滑行道、标志线、塔台、机场灯光、居民楼、公路等机场及周边典型地景。合理控制模型的三角形数量,确保模型的复杂度满足实时渲染效果,设置模型文件路径、模型内部各节点,调整模型位置,以点和面矢量的形式导入Genesis地景工程文件中,效果如图3所示。

图3 三维机场模型效果

5)细节环境参数配置。依据成像计算机的解算能力和训练任务需求,通过文件合理设置地形与纹理细节控制参数,如地形单元的三角形数量、地形LOD级数和距离、纹理淡入淡出的距离和强度,保证三维场景渲染的逼真度和实时性。

3.2 重要军事目标数据库

重要军事目标包括机库、雷达阵地、导弹阵地、地堡、桥梁、指挥机构等目标及周边相关设备。视景以高分辨率的卫星图像、现场照片为基础,利用三维软件将军事目标模型进行等比制作及细化,通过获取目标精确的地理坐标和外形信息、影像资料,构建具有真实细致的纹理贴图的三维模型。在Creator中可以设置模型的DOF节点、Switch开关和LOD参数,以便后续进行精确控制其动作或运动轨迹。

3.3 特殊效果数据库

特殊效果数据库是优化虚拟场景,增加逼真度的特殊数据库,包括火焰、烟雾、爆炸、天气效果等。Genesis提供了多种效果,需要在Genesis AM中进行相关纹理设计和配置工作。

1)天气气象效果如雨、雪、雾、冰雹、闪电效果显示和强度的变化。

2)固定或者移动的片云、三维立体云、乌云密度的变化。

3)战术效果显示,如导弹尾迹、火焰、爆炸、烟雾。

4)时间变化,白天、黄昏、黑夜等场景变化。

5)城市灯光、营区灯光、机场标志灯光、飞机着陆灯、星空、月亮等。

6)高级光照系统显示,形成实时阴影、动态植物、湿跑道反射、反光和倒影等效果。

4 视景仿真系统驱动控制

驱动控制是整个仿真系统中不可或缺的部分,是通过程序将飞行员操作命令、教员台控制指令实时展示在成像显示终端的关键环节。

4.1 视景初始化控制

设定初始化模块,实现网络数据通信初始化,该模块主要处理视景计算机与网络服务器的网络数据通信,将数据写入内存,验证数据的正确性,将视景反馈的地形高度信息送到网络服务器。加载地形纹理、加载场景模型、实现进程初始化、气象环境初始化、实时光照初始化、模型位置初始化、模型姿态初始化和视点位置初始化。

4.2 天体环境变化仿真控制

包括场景时间设置、时间推进方式设置、太阳显示开关、月亮显示开关和星空显示开关。通过函数Celestial Sphere Ctrl设置当前时间;通过控制函数Sun Enable、Moon Enable、Star Field Enable实现太阳、月亮、星星等显示或者关闭、调整亮度并且使得场景产生相应的变化;通过控制函数Atmosphere Control实现湿度、温度、大气能见度、风速、风向等参数的变化;通过控制函数Environmental Region Control实现一个场景中多个区域的不同气象环境控制。

4.3 窗口显示控制

文件window-definition.xml可设置一个或者多个通道视窗参数,以单个视窗显示脚本为例:

1)window-id 与channel-id 一致,为该通道编号“0”。

2)fullscreen="true" use-virtual-fullscreen="true" screen-size-horizontal="1920" screen-size-vertical="1080"是设置满屏显示与屏幕分辨率。

3)group-id 可设置通道分组,区分第三视点通道与主显示通道。

4)frustum near="5.0" far="150 000" left="-33" right="33" top="25" bottom="-25" 设置远近裁剪及视锥角度,如图4所示,设置各偏移量为"0"。

图4 视锥角度设置

4.4 视景特效仿真控制

该模块包括烟雾、火焰、闪光、海浪、沙尘等特效模型对象的初始化、状态设置、持续时间控制和位置控制。以爆炸特效为例,可通过设置XML表设定爆炸对象名称、类型、生命周期、空间位置、父子关系,并通过驱动软件实时控制。

4.5 气象环境仿真控制

气象环境仿真用于控制天气层和天气实体,进行当前能见度设置、雪强度设置、雨强度设置、风向设置、三维云位置设置、云层高度设置、云层厚度设置、云层过渡带设置。通过Weather Control类提供的方法控制场景的能见度,设置雨、雪、雾的强度以及风速和风向等。以雾天为例,需要控制的主要参数主要有Weather Enable、Layer ID、Coverage、Visibility Range、Base Elevation、Thickness、Transition Band、Severity等。雾层的垂直范围由Base Elevation基准高程、Thickness厚度、Transition Band过渡带参数构成。基准高程指从平均海平面到雾层底的距离,厚度为雾层的垂直高度,过渡带指区域上下的垂直高度。雾天参数如图5所示。

图5 雾天参数示意图

图8 四叉树结构区块动态调用

4.6 模型实体控制

模型实体控制包用于控制描述实体状态的位置、姿态和其他属性[8]。此数据包适用于仿真中的所有实体,每个模型实体都有一个唯一的标识符(Entity ID)。当主机发送一个实体控制包给IG时,IG设置与entity ID参数的值相对应entity对象的状态值(Entity State)。如果指定的实体不存在,IG将创建它,当IG创建实体时,它会复制与实体类型(Entity Type)相对应的几何图形参数,此副本唯一且独立存在于场景中,因此,任何修改实体的操作只影响该实体及其子实体。分配给同一类型的多个实体的唯一实体ID,如图6所示。

图6 实体ID配置示意图

模型实体可以在层次关系中彼此附加,在这种层次结构中,子实体位置由对应的父坐标系指定[14]。因此,只需控制父实体即可将层次结构中的所有较低级别的实体作为一个组一起运动。无须单独操作子实体,除非其父子关系发生变化。例如飞机的导弹和导弹轨迹可以通过两种方式之一进行机动。方案一是将飞机、导弹和尾迹作为一个等级进行单独控制,这就要求主机单独为每个实体提供位置和姿态数据等信息。方案二是在发射前将每枚导弹和尾迹作为子实体附在飞机上,发射后,将导弹和尾迹从飞机中分离出来,改变Attach State状态,提升导弹和尾迹实体等级,和飞机一样可以独立控制,如图7所示。

图7 飞机模型实体控制示意图

当不再需要显示模型实体时,可以将实体状态设置为0以指示IG卸载模型并释放为实体分配的内存,任何子实体也会被销毁。整个过程中,顶层实体(即非子实体)的位置始终对应于大地的纬度、经度和高度,子实体的位置对应于父实体的坐标系。

5 关键技术

5.1 区块动态调用技术

飞行视景库的一个特点就是有大量的纹理和多边形,如果一次性调用大规模的数据必然会增加图形生成器内存和CPU的负担,而区块动态调用技术可以解决大量数据实时调用的困难。该技术在处理地形环境绘制时,只处理实现一定范围内的地形,当观察者视线运动是,动态加载新的地形环境,卸载不再感兴趣的地形,内存中始终保留的是感兴趣的景象,保证了画面的实时流畅。如图8所示,Genesis在运行时采用四叉树结构将地球平铺成小方格块,每个方格块都可以被看作是一个小型的独立数据库,它从观察者的眼点位置开始处理用户定义的半径内的每个方格。若观察者关注某个方格内的景象,那么方格大小将继续递归,直至越来越小的地形图越来越接近观察者眼点的位置,同时方格结构会随着眼睛位置的移动而更新,实时创建新的场景或摧毁不再关注的场景。

5.2 三维纹理映射技术

利用纹理映射技术来展示物体的表面细节和反射属性,使建立的3D模型更加接近自然物体,极大地提高计算机生成图形的真实性。使用三维纹理映射技术绘制体积云,把三维纹理映射到粒子系统中的粒子上,其能够绘制出真实感较高的体积云效果,当视点进入体积云内部时,看不到明显的人工痕迹,能够达到体积云的沉浸感效果。

三维纹理映射的基本思想是假定场景中的三维物体每一个空间坐标点(x,y,z)都存在一个纹理值t(x,y,z),这个纹理值由纹理函数t(x,y,z)唯一确定,相对于二维纹理映射,三维纹理映射可以把三维物体的空间坐标直接线性映射到一个纹理空间上。三维纹理映射的纹理空间与三维物体坐标同是三维的,因此,在纹理映射的时候,只需把场景中的三维物体坐标线性变换到纹理空间的三维局部坐标系中即可。

为了对云层外观进行快速建模通常采用基于3D纹理的粒子系统的建模方法表示具有模糊性的自然景物,系统中的三维云模拟效果如图9所示。3D纹理可以理解为由很多张2D纹理组成用于描述三维空间数据的图片。三维纹理通过三维纹理坐标进行访问,首先,用有限个大小不等的六面体来构建云团的基本轮廓;其次,在六面体的范围内生成一定数量的3D纹理粒子;再次,根据需要模拟云的类型,采用不同的纹理进行渲染。假设一个3D纹理粒子代表一个球形区域,其中粒子密度服从高斯分布,每一个粒子属性包括中心位置、半径、密度及颜色,通过调整粒子的半径及密度分布,可以得到较为真实的云外观形状。

图9 三维云模拟效果

5.3 FootPrint技术

把3D模型加入地形中会遇到以下两个问题:一是当模型被加到一个倾斜地面上或者多个面的交点处时候,看起来像是浮在地面上;二是当一个全是由平面构成的3D模型(如跑道、公路)加入地形中,并且覆盖在地表上时,系统就无法决定哪一个面在上面,其结果就会出现闪烁或者显示冲突的现象。FootPrint技术的应用可有效解决上述问题,通过切除地形与3D模型面相接触的部分,为模型让出空间。

6 系统实现

系统主要硬件为CPU为Intel(R) Xeon(R)CPU E5-2620 v3@2.4HZ,内存64 G,NVIDIA QUADRO K6000显卡;软件主要以Genesis及其相关组件为核心,结合MultIGen Creator建模工具、Visual Studio 2010(C++)编程环境、3Dmax建模工具,进行飞行训练场景建模和相关视景驱动应用开发。如图10所示,展现了某次模拟飞行训练中的不同画面,系统在运行时动态地构造精度高、面积大、文化信息丰富的飞行场景,其画面真实、运行流畅、各类特效和气象环境逼真,为飞行模拟训练提供较好的视景环境。

图10 几种典型飞行训练仿真场景

7 结束语

本文系统研究了基于Genesis开发飞行模拟视景仿真系统的详细过程和关键技术,明确系统具体组成、主要功能,提出了具体设计方案,探讨了飞行视景仿真系统场景库生成集成、军事目标建模和场景库实时驱动等具体技术。下一步,将结合VR和AR技术实现逼真的沉浸式飞行训练场景,重点突出军事目标夜间红外特性仿真,同时进行大视角、多通道以及多机间战术对抗飞行训练仿真试验,验证系统稳定性及精确度。

猜你喜欢
视景纹理实体
基于BM3D的复杂纹理区域图像去噪
软件(2020年3期)2020-04-20 01:45:18
前海自贸区:金融服务实体
中国外汇(2019年18期)2019-11-25 01:41:54
使用纹理叠加添加艺术画特效
vega及其在战场环境视景仿真系统中的应用
电子测试(2018年4期)2018-05-09 07:28:19
TEXTURE ON TEXTURE质地上的纹理
Coco薇(2017年8期)2017-08-03 15:23:38
实体的可感部分与实体——兼论亚里士多德分析实体的两种模式
哲学评论(2017年1期)2017-07-31 18:04:00
两会进行时:紧扣实体经济“钉钉子”
振兴实体经济地方如何“钉钉子”
消除凹凸纹理有妙招!
Coco薇(2015年5期)2016-03-29 23:22:15
全回转拖轮运动建模与视景仿真