王永洁,陆铭华,刘 剑,孙光辉
(1.海军潜艇学院,山东 青岛 266071; 2.中国人民解放军92858部队,浙江 宁波 315812)
潜艇作战三维视景仿真系统设计与实现
王永洁1,陆铭华1,刘 剑1,孙光辉2
(1.海军潜艇学院,山东 青岛 266071; 2.中国人民解放军92858部队,浙江 宁波 315812)
首先设计潜艇作战三维视景仿真系统的总体结构,然后设计基于组件技术的潜艇作战仿真子系统,分析潜艇作战三维视景的功能需求,确定三维视景的设计方案和软件结构。最后采用OSG图形系统进行潜艇作战三维视景仿真系统开发实现。
作战仿真;组件;OSG;三维视景
潜艇作战三维视景仿真系统是在潜艇作战仿真基础上,以三维视景的方式对潜艇作战过程进行实时逼真直观的演示,将作战过程中出现的潜艇、舰艇、导弹、鱼雷、直升机等实体的运动轨迹和姿态进行可视化显示。操作人员可以灵活地控制观看视点,对潜艇作战过程获得真实直观的感受,从而为战术推演、作战训练、模型验证和武器装备论证提供经济有效的手段。
本文首先按照Java EE/EJB体系结构,利用组件技术建立潜艇作战仿真子系统,然后采用OpenSceneGraph 图形系统来作为三维视景设计的基础开发引擎,建立三维视景子系统,2个子系统之间采用UDP网络通信,用仿真数据驱动三维视景。系统总体结构如图1所示。
图1 系统总体结构图Fig.1 System structure
目前,Java EE已成为构建大型分布式计算平台的主流框架。本文采用Java EE/EJB的仿真应用模式建立潜艇作战仿真子系统,有关Java EE/EJB内容参见相关文献。
图2 潜艇作战模型体系结构图Fig.2 Submarine combat model system structure
2.1 潜艇作战模型体系结构
根据潜艇作战过程特点,按照功能和地位的不同,潜艇作战仿真模型体系中所包括的各类模型可划分为:基础类模型、装备类模型、反潜装备类模型、武器模型、平台(兵力)模型、行为模型、底层的环境数据库、装备参数数据库以及兵力参数数据库等[1],具体的模型体系层次如图2所示。
上述模型体系中模型模块具有以下特点:环境模型统一由底层环境数据库支撑,将数据与模型实现了分离,兵力和装备性能参数与具体模型实现了分离。在基于组件的建模思想下,可以最大程度的实现模型的重用和模型的可重配置。具体模型构建在此不做赘述。
2.2 潜艇作战仿真子系统的组成与仿真实体
基于组件技术的潜艇作战仿真子系统由兵力/武器仿真单元、Java EE应用服务器单元和仿真管理单元组成。其中兵力/武器仿真单元依靠仿真部署管理动态分配仿真兵力/武器对象,各用户从Java EE仿真服务器中调用所需模型进行重组,生成不同兵力。
在潜艇作战仿真子系统中,实体是整个仿真系统运行的基础,各种兵力实体的静态、动态特性和智能行为表现是构成一切仿真活动的最基本要素。在基于组件的潜艇作战子系统中,少量采用人在回路的虚拟实体,绝大部分运行的兵力都是构造实体CGF。
2.3 潜艇作战仿真子系统的详细设计
基于可重配置组件的潜艇作战仿真子系统采用应用层、业务层和数据层相互分离的3层模式。应用层主要负责客户端应用程序的功能,完成包括态势显示、仿真监控/显示和仿真数据分析等功能;业务层主要负责Java EE应用程序服务器的功能,主要完成对EJB组件的封装、处理用户需求等功能;数据层主要是通过容器管理的环境数据库、兵力参数数据库、电子海图数据库和武器参数数据库为业务层的仿真组件提供数据支持。系统组件功能调用结构如图3所示。
本文采用可视化显示软件OpenSceneGraph(OSG)图形系统[2],它是一个基于工业标准OpenGL的软件接口,它让程序员能够更加快速、便捷地创建高性能、跨平台的交互式图形程序。OSG图形系统,具备良好的跨平台性,可移植性以及可扩展性。封装并提供了数量众多的提升程序运行时性能的算法、针对包括分页数据库在内的几乎所有主流数据格式的直接数据接口、以及对脚本语言系统Python的支持。OSG作为独立于窗口系统、操作系统和硬件平台的三维图形处理技术,其主要包括:
图3 潜艇作战仿真系统组件功能调用Fig.3 Function use of submarine combat simulation system
图形处理、交互、窗口仿真和设备驱动等几个方面。正因为有以上优点,它在虚拟现实、三维可视化等方面得到广泛应用。
3.1 潜艇三维视景子系统功能需求分析
根据潜艇作战过程,对三维视景子系统有以下功能需求:
1)以真实海洋为参考,制作接近真实效果的海洋效果,在场景遍历时也可看到海底地形的高低起伏以及海面明暗变化。三维场景中的模型在地图缩放时按比例进行缩放。
2)利用3DMax、Creator等建模工具建立细致真实的实体(潜艇、舰艇、鱼雷、导弹等)模型,模型大小、比例、色彩、图案接近真实。其中根据航行状态不同(水面状态、潜望镜状态和水下状态),展示不同航行状态的潜艇三维模型。
3)海洋有动态的波浪起伏,且海洋的颜色比较逼真。通过界面控制在不同海况条件下海洋中的波浪起伏的幅度,并根据波浪起伏情况在海面上产生浪花[3]。
4)在场景中展现比较真实的爆炸效果和爆炸后的焰火效果。在场景中展现飞机、导弹、鱼雷等实体经过位置与经过时的姿态的尾迹效果。在场景中展现舰艇和潜艇水面航行时的尾迹效果。
5)用户可通过对键盘和鼠标的操作实现在三维场景中的漫游、切换跟随的实体、更改与跟随实体的观察距离与角度等。通过菜单选项或控制面板进行“自由观察”、“跟随观察”以及“定点观察”等视点观察方式的设置。
3.2 潜艇三维视景子系统设计方案
三维视景软件的基本技术方案是在OSG开源三维引擎的基础上封装海量地形的加载及三维模型、军标的处理等方法。支持各类仿真实体、特效显示。切换观察视角模式实现不同的三维展示效果[4]。总体的技术路线如图4所示。
图4 三维视景技术路线图Fig.4 3D scene technology way
三维视景主要实现对潜艇作战显示及态势环境的渲染功能。其中主要包括实体的管理,视点的管理以及特效的渲染等功能。场景的初始化与外部想定建模系统及实体编辑有密切关系。场景中实体的驱动数据来源于潜艇作战仿真子系统,三维视景软件的功能结构如图5所示。
图5 三维视景功能结构图Fig.5 3D scene function stucture
3.3 潜艇三维视景子系统软件结构设计
潜艇三维视景子系统软件结构如图6所示。
图6 三维视景子系统软件结构Fig.6 3D scene system software structure
3.3.1 MainWindow
该部分为潜艇三维视景子系统的主窗口,是软件的主界面部分,是用户与系统交互的媒介。主要包括菜单栏,工具栏,状态栏等。还包括仿真实体机实例的树形或其他形式的展示控件以及实体属性等的显示。
3.3.2 Viewer3D
三维视景软件的窗口渲染的最终实现类为Viewer3D类。可视化显示软件通过Viewer3D类加载地形。根据外部想定建模系统提供的想定数据,初始化战场态势,构建系统场景。并以三维模型的方式来展示实体的运行效果,同时展示天空、白云、海底等自然特效,并实现具体的实体特效,如尾迹、火焰、烟雾等的渲染功能。
3.3.3 EntityMgr
实体管理,构建基本数据类型对场景内的各实体以及实例集进行统一管理,包括各实体的数据更新等。该部分依赖于想定解析模块、实体解析模块以及数据通信模块。
3.3.4 SpecialEffects
特效管理,基于OSG构建具体的特殊效果。对自然特效和实体特效统一管理。主要包括海洋效果,海浪效果,烟雾效果,火焰效果,爆炸碎片效果,尾迹效果等。
3.3.5 AudioEffects
声音特效,基于OSG构建场景的声音效果。主要包括两类声音效果:一种是普通音效,不随距离等因素变化;一种是具有“多普勒”效果的声音展示,声音随着距离的远近变大变小,声调随着距离和速度的变化变高变低。
3.3.6 ScenarioParse
想定解析,该部分依赖于系统外部的想定建模系统。主要用于初始化场景时,解析外部想定。想定以XML格式文件提供,其中可能包含了有关实体的信息,实体种类的名称,该类实体的一些基本属性信息;还包含仿真所用到的具体实体的实例信息,例如实例的名称,初始经纬度,高度,姿态,状态等信息。三维显示通过对想定的解析来构造三维场景。
3.3.7 DataCommunications
数据通信模块,在潜艇作战仿真的过程中,潜艇作战仿真子系统会实时将各实体实例的运动信息,姿态信息,状态信息等发送给潜艇三维视景软件,从而实现三维视景的动态效果。
3.3.8 ObserverMgr
视点管理,在三维视景显示过程中实现观察视点管理功能。主要有2种视点模式,分别是:漫游模式和跟随模式。该部分功能依赖于主界面的工具栏,同时也依赖于三维视景显示界面内的视点操纵器。
4.1 系统运行组成
潜艇作战三维视景仿真系统由潜艇作战仿真子系统和三维视景子系统2部分组成,二者间组建在同一个局域网,通过UDP协议实现网络通信[5],具体系统组成如图7所示。
在本系统中,所有的模型组件都部署在JavaEE仿真服务器中,由仿真管理单元负责模型的管理、部署,通过仿真想定编辑来驱动一次仿真,执行显
图7 潜艇作战三维视景仿真系统组成Fig.7 The form of submarine combat 3D scene simulation system
示计算机负责监听仿真过程中产生的实体数据,并把实体数据以网络通信的方式传给三维视景单元,来驱动三维视景软件的运行[6]。
4.2 通信数据设计
三维视景软件由潜艇作战仿真过程数据驱动,通信数据结构必须满足通信需要。本系统通信数据包括事件数据和实体数据两类。事件数据用于特效渲染,实体数据用于驱动实体运动。每一帧数据结构内容如图8所示。
图8 通信数据结构Fig.8 Communication data structure
4.3 系统总体框架及运行效果
潜艇作战仿真子系统在Windows平台上基于Netbeans开发环境,采用Java语言实现,三维视景子系统在Windows平台上基于VC++开发环境,采用C++语言实现。系统总体框架如图9所示。
图9 系统总体框架Fig.9 System frame
本系统将在3DMax建模软件中建立的潜艇、舰艇、鱼雷、导弹等实体模型以及海面、水下、天空等环境模型导入以OSG引擎为平台的软件系统中。同时接收由潜艇作战仿真子系统在仿真过程中实时产生的事件数据和实体数据,并对实体运动数据进行插值平滑处理,显示所有作战实体的运动姿态,然后实时渲染作战海洋环境,同时发出作战过程中导弹发射、武器命中、爆炸等声音。潜艇作战三维视景实现效果如图10所示。
图10 潜艇作战三维视景实现效果Fig.10 Submarine combat 3D scene realization effect
本文采用JavaEE/EJB体系结构,建立了基于组件技术的潜艇作战仿真子系统,同时建立了3DMax建模软件和OSG图像渲染引擎相结合的三维视景子系统,二者通过网络通信连接,共同组成了潜艇作战三维视景仿真系统。仿真中用到的各种SDK均开放源代码,具有良好的平台移植性。实践证明,本系统既可以有效解决潜艇作战模型重用性问题,又可以逼真地模拟出潜艇、舰艇等实体的运动姿态,以及形象地渲染出海洋环境,达到了虚拟现实要求的沉浸感。
[1] 陆铭华,王永洁.基于组件的反舰导弹作战仿真系统研究[J].战术导弹技术,2012(1):105-109.
LU Ming-hua,WANG Yong-jie.Research of anti-ship missile warfare simulation system based on component[J].Tactical Missile Technology,2012(1):105-109.
[2] 项杰,靳媛媛,李爱光.OSG中三维场景构建的关键技术[J].地理空间信息,2012,10(1):44-45.
XIANG Jie,JIN Yuan-yuan,LI Ai-guang.The key technology of 3D scene in OSG[J].Geospatial Information,2012,10(1):44-45.
[3] 刘征宇,瞿永翠.海战场视景实时生成技术研究[J].指挥控制与仿真,2010,32(4):62-63.
LIU Zheng-yu,QU Yong-cui.Research of real-time generation technology on scene for ocean battlefield[J].Command Control and Simulation,2010,32(4):62-63.
[4] 申闫春,朱幼虹.基于OSG的三维仿真平台的设计与实现[J].计算机仿真,2007,24(6):209-210.
SHEN Yan-chun,ZHU You-hong.Design and implemen-tation of 3D simulation platform based on OSG[J].Computer Simulation,2007,24(6):209-210.
[5] 何金花,彭侠夫,王莺.船舶运动视景仿真系统研究[J].计算机仿真,2007,24(8):198-200.
HE Jin-hua,PENG Xia-fu,WANG Ying.A visual simulation system of ship motion[J].Computer Simulation,2007,24(8):198-200.
[6] 曾安里,张建康,王国宏.军用三维视景仿真引擎研究[J].指挥信息系统与技术,2010(5):18-20.
ZENG An-li,ZHANG Jian-kang,WANG Guo-hong.Research of the VVP-3D military visual simulation engine[J].Command Information System and Technology,2010(5):18-20.
Design and implementation of submarine combat 3D visual simulation system
WANG Yong-jie1,LU Ming-hua1,LIU Jian1,SUN Guang-hui2
(1.Navy Submarine College,Qingdao 266071,China; 2.No.92858 Unit of PLA, Ningbo 315812,China)
The paper designs the whole structure of submarine combat 3D visual simulation system. The submarine combat simulation subsystem based on component is designed. Function demand of submarine combat 3D visual simulation is analyzed, and design project and software structure of 3D visual are designed. Finally the paper implements submarine combat 3D visual simulation system by using OSG graphics system.
warfare simulation; component; OSG; 3D Visual
2013-09-18;
2013-12-31
王永洁(1979-),男,博士后,研究方向为作战仿真技术。
TP391.9
A
1672-7649(2014)11-0132-05
10.3404/j.issn.1672-7649.2014.11.027