论文部分内容阅读
【摘 要】战术仿真训练系统3D引擎是用于控制仿真训练系统的主程序,是构建仿真训练系统的基础,是实现仿真训练系统的核心技术。因此,本文通过开展对3D引擎的研究设计,对缩短国内与国外在这一领域的差距,促进仿真训练系统在武警军事训练中的应用,无疑具有非常重要的意义。
【关键词】仿真;训练;3D引擎;设计
1. 3D引擎
简单地说,引擎就是“用于控制所有功能的主程序,从计算碰撞、物理系统和物体的相对位置,到接受用户的输入,以及按照正确的音量输出声音等等[1]”。3D引擎作为一种底层平台支持着高层的软件开发,可以将其看作是对3D API、通用算法和一些底层工具的封装。根据是否能够被计算机即时计算出结果,3D引擎分为即时3D引擎和离线3D引擎。PC机及游戏机上的即时3D画面就是用即时3D引擎运算生成的,而电影中应用的3D画面则是用离线3D引擎来实现。
3D引擎通过3D视角,表现渲染系统中的各种物件,实现各种功能,提供3D开发所需的各种接口与工具。3D引擎经过不断的发展,已经成为一套由多个子系统共同构成的复杂的系统,从建模、动画到光影、粒子特效,从物理系统、碰撞检测到文件管理、网络特性,还有专业的编辑工具和插件,几乎涵盖了开发过程中的所有重要环节。现今比较知名的开源3D引擎有:Irrlicht、OGRE、Panda 3D、NeoEngine及Delta3D等。
2.可行性分析
3D战术仿真训练系统能够逼真模拟武器装备的外观、功能、操作维护和战场环境,使参训官兵“身临其境”受到近似实战的训练。特别是三维建模技术和网络化对抗手段的出现和应用,使“沉浸式”训练和实时互动的对抗式训练成为可能,并正在发挥着越来越重要的作用。然而,就目前国内情况来看,网络化的战术仿真训练系统主要使用国外军事类游戏的汉化版,具有自主知识产权的贴近部队实战的系统可以说是凤毛麟角。总体而言,目前我国在军事仿真训练领域尚处于起步阶段,与国外相比存在着较大差距。究其原因,主要是缺少具有自主知识产权的高性能的3D引擎。因此,高性能的3D引擎事实上已经成为制约国内战术仿真训练系统开发和应用的瓶颈。
虽然3D战术仿真训练系统的引擎与3D游戏引擎并无本质差别,同时,随着技术的不断发展,国外商业化的3D游戏引擎无论其流畅性、稳定性还是画面的细致程度都能够很好的满足军事应用的要求,但是我们不得不看到,成熟的商业游戏3D引擎除了价格不菲之外,也存在功能扩展和定制困难、不贴近部队实战等问题。而开源3D游戏引擎虽然容易获得,但其性能往往差强人意。所以,研究3D引擎的相关技术,在已有的3D游戏引擎的基础上,设计并实现具有自主知识产权的性能优良的3D引擎,不仅是可能的,而且对于提高武警部隊在该领域的研究水平、满足部队信息化训练需要具有明显的现实意义。
3.总体设计
3.1设计思想
战术仿真训练系统3D引擎是综合利用计算机网络技术、计算机图形学和仿真技术构建的,力求营造一个逼真的虚拟训练环境。本质上,3D引擎是一个仿真训练系统的支持平台。3D引擎设计的基本思想包括以下方面:
3.1.1环境逼真具有沉浸性
为了更好地体现仿真训练系统的沉浸性和交互性,就对3D引擎创建的虚拟环境逼真度提出了更高的要求。因为参训官兵在虚拟环境中的行为要受现实世界的规则约束,逼真可信的虚拟训练环境可使参训官兵“身临其境”接受到近似实战的训练。
3.1.2训练过程动态复杂性
3D引擎应具有作战模拟特性,充分体现战术条件下战场环境的非线性、动态、复杂等特征。通过动态情况的模拟处置,可使官兵积累经验,并不断内化为个人能力和素质。
3.2 3D引擎的架构
武警战术仿真训练系统3D引擎既要提供一个用于实现战术仿真训练系统逻辑的功能库,同时又要和底层各种API进行通信,所以设计该3D引擎既是对仿真训练系统的底层实现,又是对底层API的封装。
3D引擎作为一个功能库,首先要提供用户所需的功能接口,这些接口尽量丰富,从而可以满足实现战术仿真训练系统逻辑的需求,这些接口一旦确立下来就必须是相对稳定的。同样引擎必须提供这些接口的具体实现。因此,整个引擎由接口层和内核层两层来构成。在接口层里面,定义了所有提供给用户调用的接口。这些接口主要由C++的抽象类来实现。内核层是引擎内部对接口层所有抽象类的具体实现[2,3]。
根据3D引擎提供不同类型的功能,战术仿真训练系统3D引擎划分为六个功能模块:图形处理模块、资源管理模块、地形场景模块、物理系统模块、输入系统模块和网络通信模块。如图1所示。
各个功能模块在接口层是相互独立的,但在内部实现过程中又是相互联系的。因为对于实现某一功能,单靠引擎当中某一特定模块进行实现是不可能的,而是要综合利用各引擎模块之间共同的逻辑运算处理来解决的。比如对地景或物体进行纹理贴图就涉及到图形处理模块、资源管理模块以及地形场景模块之间的共同作用来实现。
4.小结
本文主要是对战术仿真训练系统3D引擎进行研究与设计。首先,描述了一般概念下的3D引擎;其次,结合武警部队自身特点对战术仿真训练系统3D引擎进行可行性分析;最后,对战术仿真训练系统3D引擎进行总体设计。
参考文献:
[1] Finney K. C(著), 齐兰博, 肖奕(译). 3D游戏开发大全[M]. 清华大学出版社, 2005.10.
[2] Julian Gold(著), 程为, 周骥等(译). Object-oriented GAME Development[M]. 电子工业出版社, 2005.
[3] Rudy Rucker. Software Engineering and Computer Games[M]. Addison Wesley,2002.
【关键词】仿真;训练;3D引擎;设计
1. 3D引擎
简单地说,引擎就是“用于控制所有功能的主程序,从计算碰撞、物理系统和物体的相对位置,到接受用户的输入,以及按照正确的音量输出声音等等[1]”。3D引擎作为一种底层平台支持着高层的软件开发,可以将其看作是对3D API、通用算法和一些底层工具的封装。根据是否能够被计算机即时计算出结果,3D引擎分为即时3D引擎和离线3D引擎。PC机及游戏机上的即时3D画面就是用即时3D引擎运算生成的,而电影中应用的3D画面则是用离线3D引擎来实现。
3D引擎通过3D视角,表现渲染系统中的各种物件,实现各种功能,提供3D开发所需的各种接口与工具。3D引擎经过不断的发展,已经成为一套由多个子系统共同构成的复杂的系统,从建模、动画到光影、粒子特效,从物理系统、碰撞检测到文件管理、网络特性,还有专业的编辑工具和插件,几乎涵盖了开发过程中的所有重要环节。现今比较知名的开源3D引擎有:Irrlicht、OGRE、Panda 3D、NeoEngine及Delta3D等。
2.可行性分析
3D战术仿真训练系统能够逼真模拟武器装备的外观、功能、操作维护和战场环境,使参训官兵“身临其境”受到近似实战的训练。特别是三维建模技术和网络化对抗手段的出现和应用,使“沉浸式”训练和实时互动的对抗式训练成为可能,并正在发挥着越来越重要的作用。然而,就目前国内情况来看,网络化的战术仿真训练系统主要使用国外军事类游戏的汉化版,具有自主知识产权的贴近部队实战的系统可以说是凤毛麟角。总体而言,目前我国在军事仿真训练领域尚处于起步阶段,与国外相比存在着较大差距。究其原因,主要是缺少具有自主知识产权的高性能的3D引擎。因此,高性能的3D引擎事实上已经成为制约国内战术仿真训练系统开发和应用的瓶颈。
虽然3D战术仿真训练系统的引擎与3D游戏引擎并无本质差别,同时,随着技术的不断发展,国外商业化的3D游戏引擎无论其流畅性、稳定性还是画面的细致程度都能够很好的满足军事应用的要求,但是我们不得不看到,成熟的商业游戏3D引擎除了价格不菲之外,也存在功能扩展和定制困难、不贴近部队实战等问题。而开源3D游戏引擎虽然容易获得,但其性能往往差强人意。所以,研究3D引擎的相关技术,在已有的3D游戏引擎的基础上,设计并实现具有自主知识产权的性能优良的3D引擎,不仅是可能的,而且对于提高武警部隊在该领域的研究水平、满足部队信息化训练需要具有明显的现实意义。
3.总体设计
3.1设计思想
战术仿真训练系统3D引擎是综合利用计算机网络技术、计算机图形学和仿真技术构建的,力求营造一个逼真的虚拟训练环境。本质上,3D引擎是一个仿真训练系统的支持平台。3D引擎设计的基本思想包括以下方面:
3.1.1环境逼真具有沉浸性
为了更好地体现仿真训练系统的沉浸性和交互性,就对3D引擎创建的虚拟环境逼真度提出了更高的要求。因为参训官兵在虚拟环境中的行为要受现实世界的规则约束,逼真可信的虚拟训练环境可使参训官兵“身临其境”接受到近似实战的训练。
3.1.2训练过程动态复杂性
3D引擎应具有作战模拟特性,充分体现战术条件下战场环境的非线性、动态、复杂等特征。通过动态情况的模拟处置,可使官兵积累经验,并不断内化为个人能力和素质。
3.2 3D引擎的架构
武警战术仿真训练系统3D引擎既要提供一个用于实现战术仿真训练系统逻辑的功能库,同时又要和底层各种API进行通信,所以设计该3D引擎既是对仿真训练系统的底层实现,又是对底层API的封装。
3D引擎作为一个功能库,首先要提供用户所需的功能接口,这些接口尽量丰富,从而可以满足实现战术仿真训练系统逻辑的需求,这些接口一旦确立下来就必须是相对稳定的。同样引擎必须提供这些接口的具体实现。因此,整个引擎由接口层和内核层两层来构成。在接口层里面,定义了所有提供给用户调用的接口。这些接口主要由C++的抽象类来实现。内核层是引擎内部对接口层所有抽象类的具体实现[2,3]。
根据3D引擎提供不同类型的功能,战术仿真训练系统3D引擎划分为六个功能模块:图形处理模块、资源管理模块、地形场景模块、物理系统模块、输入系统模块和网络通信模块。如图1所示。
各个功能模块在接口层是相互独立的,但在内部实现过程中又是相互联系的。因为对于实现某一功能,单靠引擎当中某一特定模块进行实现是不可能的,而是要综合利用各引擎模块之间共同的逻辑运算处理来解决的。比如对地景或物体进行纹理贴图就涉及到图形处理模块、资源管理模块以及地形场景模块之间的共同作用来实现。
4.小结
本文主要是对战术仿真训练系统3D引擎进行研究与设计。首先,描述了一般概念下的3D引擎;其次,结合武警部队自身特点对战术仿真训练系统3D引擎进行可行性分析;最后,对战术仿真训练系统3D引擎进行总体设计。
参考文献:
[1] Finney K. C(著), 齐兰博, 肖奕(译). 3D游戏开发大全[M]. 清华大学出版社, 2005.10.
[2] Julian Gold(著), 程为, 周骥等(译). Object-oriented GAME Development[M]. 电子工业出版社, 2005.
[3] Rudy Rucker. Software Engineering and Computer Games[M]. Addison Wesley,2002.