谢国平
(中船重工集团公司第七〇九研究所 武汉 430074)
如何在二维的显示器平面上显示三维立体图像是许多从事虚拟现实工程人员所关心的一个问题。虚拟现实(Vitual Reality)正是在这个需求上展示起来的计算机领域的新技术,它综合了计算机图形学技术、多媒体技术、传感器技术、人工智能、仿真技术等多种学科。虚拟现实技术的产生为三维图像的二维显示提供了很好的解决方法,因此在图像视频领域应用极为广泛,发展前景广阔。
视景仿真是虚拟现实技术的主要应用之一,它以三维动画的形式再现真实环境,目前已在许多领域得到使用,如地形地貌模拟,城市建筑模拟,铁路公路交通状况模拟等[1~3]。近年来,视景仿真更广泛地用于军事领域,主要用在仿真平台、模拟演习等方面,它可以营造逼真的虚拟场景,并给操纵人员提供充足的战场信息,从而满足操作人员与战场环境之间的信息交互[4]。
本文以现有的成熟的软件为开发工具,研究了飞机在不同的环境中跟踪的三维视景显示问题。对飞机和环境分别用不同的算法建模,然后用不同的算法进行纹理和渲染,最后用坐标变换的方法,将三维实体飞机动态加载到三维环境视景中,实现飞机的三维显示跟踪。
对待跟踪的飞机的建模分两类,分别为实物模型仿真和数学模型仿真[5]。其中,实物模型仿真针对的是飞机的外观和结构,数学模型则需要了解飞机的动力学和物理模型。三维仿真系统的总体结构框架如图1所示。
图1 仿真总体框架
其中飞机模块实现飞机进行机动飞行时的三维控制与显示;环境模块构建飞机在飞行时所处的环境背景,比如海洋、天空或平原山川;视景控制模块:实现视角的控制,从不同角度观察视景效果。
系统对三维建模的要求主要是要建立飞机的三维模型。创建飞机实体模型在于模拟飞机的航路规划和调度整个过程。可用相应的软件来完成飞机的三维建模,建模流程如图2所示。
图2 三维模型建模流程图
飞机实体建模可分为以下几步[4]:
1)模型数据采集
虚拟实体外观与几何形状等数据主要来自设计图纸和一些实地测量参考数据。飞机需要收集的数据主要是飞机的外型轮廓的尺寸和飞机外型轮廓照片,对某一型号飞机的结构尺寸进行计算和分析得到飞机的数据。
2)模型的层次结构
通过数据采集,就可以确定飞机的大体结构。按照飞机实体各个部件的位置分布情况,将飞机分解为机头、机身、座舱、减速板、机翼(副翼、襟翼)、水平尾翼、垂直尾翼、升降舵、尾舱、发动机进气口、发动机出气口几个部分,规划好的模型的结构如图3所示。
图3 飞机实体模型层次结构示意图
3)飞行实体的可视化建模
按照所确定的模型层次结构和飞机实体部件位置,在Creator中利用建模工具箱逐层进行可视化建模。
4)实体模型的冗余处理
实体外部观察模型有不可视的部分,去除它们不会影响实体的视觉效果,而消除这些冗余多边形可以降低整个场景的复杂度,减少计算机负荷,提高计算速度。
经过以上四个步骤,基本建成了飞机的几何模型如图4。
图4 飞机几何模型
飞机的飞行背景一般有海洋、陆地和天空。所以本文中所需要的环境仿真是这些景物在计算机中的二维体现。仿真的过程包括获得卫星或其它图像探测设备提供的数据信息,然后对其进行插值及网格化处理,再应用仿真软件中的相应算法生成曲面模型,最后贴上真实的卫星纹理图像并进行实时渲染,完成实时的三维视景的生成。其过程如图5所示。
图5 实时场景生成三维视景过程框图
三维视景的纹理通常都是通过现场拍摄、虚拟生成和卫星图像等方法获取[6~7]。现场拍摄过程繁杂,成本较高,而虚拟视景又因缺少真实性。所以卫星图像的方法是最可行的,而且大面积海域中的三维视景的显示并不需要太高的精度,卫星图像的精度能够满足要求。
地形数据的获取主要依靠的技术是GPS测量、摄影测量、海底回波探测等。通常的场景生成都用“现场拍摄-场景建模”的过程来实现,但是这一过程同样需要耗费许多人力物力。若去掉现实纹理,仅依据数据生成场景的三维几何模型,然后再从数据库中寻找到合适的卫星图像的纹理进行渲染,也可实时完成场景的生成,并节省人力物力。
从卫星图像中读取的数据不仅有限,而且分布散乱,因此需要对其进行网格化处理,以满足三维建模的需要。目前常用的数据网格有结构化网格、非结构化网格两种。其中,结构化网格有生成速度快、生成质量好、数据结构简单等优点,不足之处是适用范围比较窄。非结构化网格是结构化网格的延伸,它包含了结构化网格的部分。非结构化网格主要是弥补结构化网格不能解决任意形状和任意连通区域的网格部分的欠缺。非结构化网格的不足是生成技术不成熟,边界的恢复依然是一个难题。实际应用中,通常是把结构化网格和非结构化网格结合在一起使用。
作为大范围的虚拟场景,环境所用到的三维模型的数量很多,但大部分离视点很远,无法辨清许多细节结构。所以,用复杂的模型去描述,即无必要也会影响实时三维显示的速度。因此,本文采用了LOD(Levels of Detail)技术,针对不同的显示环境,调用不同层次的描述模型进行渲染显示。在不影响画面视觉效果的条件下,通过逐次简化景物的表面细节来减少视景的几何复杂度,从而提高绘制算法的效率。
用LOD 技术进行渲染显示的具体过程如下:
1)判断观察视点的位置,计算当前位置到显示目标的距离;
2)根据距离计算显示区域在显示屏幕上的投影面积;
3)根据预设参数选择渲染目标区域在金字塔法管理模式的数据层级和经纬度块信息;
4)调出图像数据进行快速渲染显示。
采用LOD 技术时应注意不同LOD 模型之间切换时容易出现“突变”现象。解决的方法主要有两种:一种是将物体看作是两个不同LOD 模型的混合,赋予不同LOD 模型相应的权值,且权值可以动态调整;另一种方法是“Morping”,即动画变形法,建立不同层次模型间物体的对应关系,利用中间插值得到物体的综合描述。
在实际情况中,为了定位的准确,飞机在飞行时采用的是大地坐标系,位置由地球的经度、纬度和海拔高度确定。而在三维视景仿真中,由于视景能展示的环境相比地球微不足道,加上三维显示系统的限制,不能直接利用大地坐标来显示和更新飞机的位置,因此系统需要把接收到的飞机所在的大地坐标系信息转换成直角坐标系的信息。这样的步骤称为坐标转换[8~9]。
建立仿真环境下的新坐标系,其原点A(j1,w1,0)为大地坐标系中任取的某点B(j2,w2,h2),XOY平面为B点处的水平面,正东为X轴的正方向,正北为Y轴的正方向,高度为大地坐标系中的高度值。其中,j表示经度,w表示纬度,h表示海拔高度,R(w)为地球的纬半径,则两个坐标系之间的转换矩阵为
则经纬度地心坐标为
则B相对于A的直角坐标(x,y,z)可由下式求得
令B为飞机所处的点,则可用式(5)来求解飞机相对于新坐标的直角坐标信息,从而完成坐标的转换。
纹理映射技术是把二维图像上的像素值映射到三维实体模型对应点的技术,目的是产生特殊的效果和增强实体模型的真实感[10]。
飞机的纹理数据来源于实地摄影照片或常用材质图片库。当收集工作结束时,要对收集到的数据进行初步处理,去掉不正确或冗余的部分,同时不损害数据的精度;然后用相应的软件将数据裁剪并转换成系统支持的纹理二维图像格式,最后将标准格式的纹理数据分类整理并存储起来。由于纹理数据可以存储和反复使用,纹理映射也是简化复杂三维建模的有效方法。
在用二维标准格式的纹理数据对三维模型进行映射时,应通过软件对飞机各部分的纹理进行提取、分析和修正,以保证最终生成的飞机三维纹理能最大程度地反映其真实性。
图6 飞机模型(加纹理)
经过纹理映射后,飞机的几何模型效果如图6所示。
环境的建模到后期也要用到纹理映射技术,不同的是环境纹理通常用的是不透明纹理技术,而实物的纹理映射适合透明纹理技术[9]。
纹理贴图可以预先设计并存储一些常见的特效,如果需要一些复杂情况的特效,则可用粒子系统来模拟。粒子系统采用大量具有一定生命力的粒子来描述自然界不规则的模糊景物。每一个粒子均具有一组属性,如形状、大小、颜色、位置、运动速度、运动方向、生命周期等,所有属性都是时间的函数。随着时间的变化,每个粒子都要经过“产生”、“运动”和“消亡”这三个具有随机性的阶段[10]。按照粒子系统工作原理每次循环都对粒子进行操作,改变其属性就可产生不同的效果。
应用粒子系统进行特效绘图按如下步骤循环:
1)在系统中按一定的频率产生新的粒子,初始属性随机;
2)更新现存粒子的属性,同时所有粒子的生命递减一个时间步长。粒子属性的更新的方法有很多种,比如速度和位置就可采用等加速度的方法,如下式
3)删除系统中生命周期为0的所有粒子。
4)绘制并显示所有有生命的粒子。
通过纹理映射和粒子贴图后的飞机飞行环境仿真图如图7所示。
图7 环境仿真
三维显示系统可将虚拟现实技术应用到指挥控制系统中,将战场变化的过程、战场态势发展、双方兵力对抗过程等可视化,增强了指挥控制系统的真实感,以及指挥人员的浸入性和交互性,为提高指挥自动化系统的实用性提供了依据和参考。
后续工作中,我们会研究飞机在飞行时的动力学理论,构建相应的数学模型,并加入到实体和场景的三维仿真中,使仿真的效果更接近于实际,在实际应用中对飞行的跟踪和状态监测更加准确。
[1]黄友能,杜霄,唐涛.城轨列车运动仿真系统中三维视景研究与实现[J].系统仿真学报,2006,18(12):3430-3433.
[2]罗秋鹏,高晓光,杨建国.空战三维视景仿真设计与实现[J].电光与控制,2008,15(10):33-36,73.
[3]Baciu G,Wong W.Rendering in object interference detection on conventional graphics workstations[C]//In:Proceedings of the Pacific Graphics,Korea,1997.51-58.
[4]Xianjian Chen,Gang Liu,Guanxin Hong.Design of the Virtual Training Platform for Carrier Aircrafts Approach and Landing[C]//Communications in Computer and Information Science,2012:238-247.
[5]罗木生,侯学隆,徐君明.基于Vega Prime的直升机反潜机动三维视景仿真[J].火力与指挥控制,2012,37(8):143-146,150.
[6]Hei Lin.Design and Research of Visual Simulation System Based on HLA[C].Communication in Computer and Information Science,2012:412-419.
[7]Xiao Xu,Wanyan Xiaoru,Zhuang Damin,Wei Zongmin.Ergonomic Design and Evaluation of Visual Coding for Aircraft head-up Display[C]//5thInternational Conference on Biomedical Engineering and Informatics,2012:748-752.
[8]Z Li,C Xie,X Shi.Research on Simulation of Low Altitude Penetration Technologic for Target of Radar Training Simulator[J].Applied Mechanics and Matericals,2013,300-301:1610-1616.
[9]李倩.飞机起飞调运航路规划、调度与仿真研究[D].哈尔滨工程大学,2009.
[10]祝明,杨然.三维视景仿真系统的软硬件开发研究[J].飞机设计,2012,32(1):39-42.