郑 涛,徐晓刚
(海军大连舰艇学院 装备与自动化系 辽宁 大连 116018)
随着计算机技术的高速发展,虚拟现实技术已经被广泛应用于各个不同领域,如:文化教育、工业设计、公共安全、医学等。特别是在需要消耗大量人力、物力和财力的具有高度危险性领域,如军事和航空航天领域[1]。国外早已开始将虚拟战场作为军用仿真的研究,主要的成果有美国陆军和美国国防部高级项目研究计划局共同设计的SIMNET,美国海军研究生院开发的NPSNET,瑞典计算机科学研究所的DIVE,新加坡国立大学的BrickNet等。国内在“863”计划的资助下,在1996年开始虚拟军事演练方面的应用研究。虽然起步较晚,但是发展迅速,在虚拟战场应用方面取得了大量有意义的研究结果。
姚煜[2]使用基于物理建模的方法在海战场环境中实现了爆炸效果的模拟,刘喜作[3]对海战场中作战对象进行建模,提出一个通用的模型框架,应用于某舰导弹模拟训练。张莉[4],王义涛[5]先后对虚拟海战场环境中的战斗过程进行了模型描述。这些工作主要针对虚拟海战场的某一特定部分进行了研究,而戴竞[6]对整个虚拟海战场的三维场景生成方法进行了描述,曾鹏[7]分析了传统海战场仿真方法的不足,提出以数字地球平台为基础对大规模虚拟海战场环境进行模拟。吴晶[8]提出基于OpenGL平台的虚拟海战场仿真。
笔者提出以Torque 3D引擎[9]为平台,搭建一个通用虚拟海战场场景。区别于以往只针对虚拟海战场单一效果的模拟和创建整个虚拟海战场场景的大量底层编码工作,该方法有效利用Toque 3D引擎平台快速创建虚拟海战场,调整相应的参数,实现虚拟海战场场景的变换,使用TorqueScript脚本语言,可针对指定功能快速添加功能模块。
虚拟海战场通常指利用计算机虚拟现实技术,基于一定的硬件平台,对海军海上作战领域的各种环境、气候、武器装备和兵力部署等进行逼真模拟的场景,包括对战争规律和战争指导规律两个方面的内在的战争本质规律模拟,核心是创造一个贴近实战的海战场训练环境[10]。虚拟海战场环境通常由以下几个模块组成:
1)海洋自然环境 海洋自然环境主要包括海洋地形地貌和地表特征。海洋地形指海底或河床的一部分,其地势起伏可测或具有明显的地形轮廓。海洋地形数据的主要来源是海洋地理信息数据。地物主要指水下的障碍物和水面的助航标识物以及海岸的实体信息。
2)海洋气象环境 海洋气象环境主要指大气中所产生的各种物理现象,如降水、雾、烟尘、雷电、风暴等。与陆地相比,海洋气象具有多态性、时变性的突出特点,海战场对气象变化更为敏感,海战场气象环境对于作战效能的发挥和最终战果具有直接影响。
3)海战特效模块 现代海战中导弹等武器的使用必然伴随着大量的爆炸、火焰、烟雾和水柱等效果的产生。每一次的爆炸、武器的发射都会产生相应的声音。为了增强虚拟海战场的逼真度,引入特效模块,包括声音特效。
4)实体模型 海战包括各个作战实体,有动态实体和静态实体。如训练人员操控的舰艇、武器装备以及拥有人工智能的假想敌。静态实体主要有灯塔、建筑物和碍航物等。
Torque 3D引擎是一款面向对象、功能齐全的基于C++的游戏引擎,由美国的InstantAction公司开发发布。使用Torque 3D引擎可以节省大量用于创建复杂渲染系统、高速网络、实时编辑器和脚本系统的时间[11]。由于游戏引擎的高效和一定的通用性,已经被广泛应用于三维虚拟场景仿真中,以下就基于Torque 3D引擎的虚拟海战场场景构建做相应的介绍。
地形是地貌(如丘陵)和地表覆盖物(如草地)的综合体,一般地貌由一个3D模型建模而成,地表覆盖物则用纹理来表现[12]。Torque 3D中对地形的建模主要有两种方法:一是使用Torque 3D引擎自带的Terrain Editor(地形编辑器),该方法可以直接对地形模型进行旋转、扭曲、拉伸、凹陷等操作,随意性很大,主要用于生成虚构性的场景;二是使用数字高程模型 (Digital Elevation Model,DEM) 创建地形。 虽然Torque 3D只支持导入高度图生成地形,但可以通过第三方软件将DEM数据转化为高度图后导入Torque 3D生成真实地形。
图1 地形效果Fig.1 The effect of terrain
根据虚拟海战场的特点,使用DEM数据的方式来生成海战场地形。DEM数据从中国科学院计算机网络信息中心科学数据中心[13]获取,按地形经纬度下载某确定地形的数据,以旅顺地形为例,下载包含东经121度北纬38度的数据块,后缀名为.img,应用Global_mapper和Wilbur两个软件将数据转化为高度图,高度图的后缀名为.png,导入Torque 3D引擎,生成地形。图1为生成的旅顺地形的部分效果。
海洋天气环境包括基本的天空、云层和雨、雪、雾等具体的天气情况。Torque 3D引擎使用天空体(skybox)来创建天空[14],天空体是一个包围视点的立方体,视点位于立方体中间,无论视点视角如何变化,都能看到相应的天空,天空体由前后左右上下6张天空纹理图片组成,为了保证视野内的天空巨大且没有缝隙,必须保证6张天空纹理无缝、相邻边匹配以及有正确的透视。为了保证天空中的云彩具有层次感和随机运动效果,Torque 3D引擎使用三层不同高度的云彩纹理图片来表示,每一层都设置相应云彩纹理和纹理属性。图2(a)为生成的晴朗的天空效果。
对于雨、雪、雾、闪电等天气效果,Torque 3D引擎使用粒子系统和纹理结合的方式来实现,如雨,根据雨的大小设定粒子数目的多少,并且给每个粒子贴上相应的雨滴纹理。闪电效果直接使用纹理图片,为了保证不是始终在同一个位置产生,对位置坐标引入随机数。图2(b)为生成的雨天和闪电效果。
图2 晴朗的天空和雨天闪电效果Fig.2 The clear sky and lighting
Toque 3D引擎中包含强大的物理系统和粒子系统。对于海战场特效的模拟通常使用粒子系统来实现,粒子系统一般由 3个 数据块 组 成 , 如 ParticleData,ParticleEmitterData,ExplosionData3个数据块可组成一个爆炸效果的粒子系统,数据块ParticleData定义了粒子的基本属性,如纹理、减速度、生存时间、旋转速度、颜色、大小。ParticleEmitterData是粒子发射器,定义了粒子的发射周期、初始发射速度、发射方向和发射角度范围等。ExplosionData综合了多种粒子发射器,爆炸如果只是单纯使用一种粒子的话,很难达到理想效果,为了增强逼真度,一般会设定多种粒子效果,而ExplosionData数据块就起到了协调各种粒子的作用,参数Emitter[]为一个数组,包含了该爆炸效果包含的所有粒子,参数soundProfile设定发生爆炸时伴随的爆炸声响数据块,参数particleDensity和particleRadius分别设定了粒子发射密度和发射半径。图3为使用Torque3D粒子系统生成的爆炸效果。
对于声音特效,Torque 3D引擎使用OpenAL应用程序接口,使用数据块SFXProfile定义声音效果,参数filename、description和preload分别设定了声音文件所在位置和是否使用3D音效以及是否预先载入声音文件,一般用于模拟爆炸声响。
图3 爆炸效果Fig.3 The effect of explosion
Torque 3D引擎支持3种3D模型格式,有DTS(Dynamix Three Space),COLLADA(COLLAborative Design Activity),DIF(Dynamix Interior File)。DTS是主要的模型格式,可以将3DMAX生成的模型通过插件转化为DTS格式。Torque官方提供dae2dts转换软件,将COLLADA格式的DAE文件转化为DTS格式文件。而DIF主要是针对建筑物等其他有内部空间的模型文件。虚拟海战场中,可以放置舰艇、飞机、坦克、军事工地等模型,并且通过添加AI控制相应模型按路径移动用以增强真实感。
常规的海上训练经费高、周期长、风险大,特别是海上天气状况和国际政治环境等不可控因素较多,增加了海上进行实际操作训练的难度。虚拟现实技术以其在军事训练演习上特有的经济性、实时性和可操控性等优点,被广泛应用于虚拟战场演练,帮助军队进行辅助训练,提高训练效果。笔者论述了以Torque 3D引擎为平台构建通用虚拟海战场的方法,并在普通PC机上实现仿真,实验结果表明本文方法具有良好的实时性和通用性。
[1]赵沁平.虚拟现实综述 [J].中国科学 (F辑)信息科学,2009,39(1):2-46.
ZHAO Qin-ping.Survey on virtual reality[J].Science in China (Series F):Information Sciences, 2009,39(1):2-46.
[2]姚煜,林剑柠,王弈,等.虚拟海战场环境中爆炸效果的实现[J].华东船舶工业学院学报:自然科学版,2001,15(6):44-47.
YAO Yu, LIN Jian-ning, WANG Yi, et al.Realization of the explosion in virtual sea battlefield [J].Journal of East China Shipbuilding Institute:Natural Science,2001,15 (6):44-47.
[3]刘喜作,徐晓刚.虚拟海战场中作战对象仿真模型研究[J].系统仿真学报,2006,18(S2):398-402.
LIU Xi-zuo,XU Xiao-gang.Research on virtual combat simulation model of naval battle space[J]. Journal of System Simulation, 2006,18(S2):398-402.
[4]张莉,刘春林.虚拟海战场环境中的战斗过程仿真模型[J].计算机仿真,2003,20(8):23-25.
ZHANG Li,LIU Chun-lin.Combat process simulation model in virtualnavalbattle space[J].ComputerSimulation,2003,20(8):23-25.
[5]王义涛,张莉.虚拟海战场环境中的战斗过程仿真模型[J].舰船电子工程,2007,27(4):138-140.
WANG Yi-tao,ZHANG Li.Combat process simulation model in virtual naval battle space[J].Ship Electronic Engineering,2007,27(4):138-140.
[6]戴竞,顾浩,翟永翠,等.虚拟海战场中场景生成与实时显示技术研究[J].计算机仿真,2006,23(12):4-8.
DAI Jing, GU Hao, ZHAI Yong-cui, et al.Research and realization of visual system in virtual ocean battlefield [J].Computer Simulation,2006,23(12):4-8.
[7]曾鹏,陈长征,李苏军.基于数字地球的虚拟海战场环境仿真[J].计算机工程,2009,35(8):269-270,273.
ZENG Peng, CHEN Chang-zheng, LI Su-jun.Simulation of virtual sea battlefield environment based on digital earth[J].Computer Engineering,2009, 35(8):269-270,273.
[8]吴晶,王瑜,许玲,等.基于OpenGL平台的虚拟海战场仿真[J].火力与指挥控制,2009,34(S1):52-57.
WU Jing, WANG Yu, XU Ling, et al.Visual simulation of virtual sea battlefield based on OpenGL[J].Fire Control and Command Control, 2009,34(S1):52-57.
[9]GarageGames.Torque 3D[EB/OL].[2011-09-13].http://www.garagegames.com/products/torque-3d.
[10]刘丹丹.基于HLA的虚拟海战场仿真[D].哈尔滨:哈尔滨工程大学,2007.
[11]陈占锋.Torque游戏引擎及脚本技术的应用研究[D].重庆:重庆大学,2008.
[12]Finney K C.3D游戏开发大全(高级篇)[M].徐明亮,谷培培,译.北京:清华大学出版社,2007.
[13]中国科学院计算机网络信息中心.SRTM90米分辨率原始高程数据[EB/OL].[2011-09-13].http://datamirror.csdb.cn/.
[14]Finney K C.3D游戏开发大全[M].肖逸,齐兰博,译.北京:清华大学出版社,2005.