期刊专题 | 加入收藏 | 设为首页 12年实力经营,12年信誉保证!论文发表行业第一!就在400期刊网!

全国免费客服电话:

火箭深弹发射炮教学训练软件开发概述

摘要:为解决火箭深弹发射炮在教学训练中存在的若干问题,提出研制基于XNA的教学训练软件。根据火箭深弹发射炮的教学训练需求,对软件的功能进行了设计;通过实体建模,场景渲染以及将XNA框架嵌入Winform窗口等多项技术的应用,实现了火箭深弹发射炮教学训练平台的搭建,通过在XNA中实施选择和拾取、平移和旋转以及位置与碰撞的检测,实现了用户对火箭深弹发射炮教学训练平台的交互操作。该教学训练软件既降低了运用实装的训练成本和操作风险,又提高了教学训练的科学性和安全性,为武器装备教学训练软件的研制开发提供了理想的途径。

关键词:XNA;火箭深弹发射炮;教学训练;软件开发

中图分类号:TP391.9 文献标识码:A 文章编号:1003-0107(2016)02-0039-04

0引言

火箭深弹发射炮是水面舰艇重要的水中武器之一,在浅海反潜、鱼雷防御、开辟雷区航道等方面作用尤为明显[1]。其中某型火箭深弹发射炮的操作使用就是舰艇武器操作培训的重点科目之一,因此培训教学的手段及方式备受关注。然而,传统的教学方式只能通过文字、视频、图片、实装操作等方式进行。这些方式能起到理论教学的目的,但达不到让学员自己动手、亲身操作体验的教学效果;然而,运用发射炮实际装备进行教学又会带来其它问题。例如用于教学的发射炮实装数量一般较少、因此人均操作时间势必较短、同时实装操作还存在安全保障以及维护成本等方面的问题,这些问题给教学训练带来了困难,而解决这些问题最常见的方法是开发互动性强、低成本、低风险的教学训练软件。此类软件常见的开发平台有两种:一是利用VisualC++和OpenGL等开放性编程软件开发;二是利用Vega等商业性软件;前者需要调用底层图形库,开发复杂,周期长;后者价格昂贵,成本过高。那么,如何有效快捷地开发出某型火箭深弹发射炮的教学训练软件呢?XNA为我们提供了理想途径。XNA是一款强大的开发工具,它是微软推出的通用软件开发平台,其目标是让程序开发的过程更加轻松简单。XNA中,X代表微软掌握的技术资源,即DirectX和Xbox;N代表次世代(NextGeneration);A代表架构(A-rchitecture)。这个软件平台具备整合性的开发环境,可以将绘图、物理运算、音效、网络等不同范围的程序完全整合在一个工具中,并提供最完善的函数库让开发人员更容易掌握[2]。

1软件总体设计

1.1功能设计

软件开发首先要明确软件的功能,该教学训练软件的主要功能包括交互操作功能、教学考核功能,辅助管理功能。其中最主要的是交互操作功能,因为使用软件进行教学和训练的最终目的就是要让学员学会如何操作使用该型火箭深弹发射炮。1)交互操作功能:具体又分为人机交互操作以及联机交互操作两个模块。人机交互操作就是指能够模拟使用人员对发射炮的操作并反馈操作信息和状态,例如转动俯仰手轮和旋回手轮,改变发射炮的旋回角和俯仰角,使发射炮达到需要设定的姿态;能够模拟进行发射炮的最后准备工作,包括选择射程大小、设定爆炸深度、接通发射电路等;以及能够模拟发射火箭深弹;联机交互操作是指能够与外部其它模拟训练设备进行网络数据的传输,例如随动系统和输弹装置的模拟设备,传输的网络数据包括发射炮当前以及期望的俯仰角和旋回角,根据这些网络数据模拟发射炮在输弹和瞄准过程中的姿态调整以及发射火箭深弹。2)教学考核功能:能够进行火箭深弹发射炮操作使用的多媒体介绍,并进行相应的理论测试;能够使用人员对发射炮的模拟准备过程进行正误判断,并给出合格或不合格的评判结果。3)辅助管理功能:能够进行用户信息的录入,实现对使用人员的管理;能够自动记录模拟设备的使用信息,方便对模拟器材的管理。

1.2模块设计

如图1所示,教学与训练软件由五个不同模块组成,包括管理模块、训练模块、视景模块、教学模块和考核模块。管理模块用于用户权限认证,使用文书登记;训练模块根据火箭深弹发射炮的操作使用流程,对操作环节进行提示、检测和记录;视景模块是对使用人员的操作环节和火箭深弹及其发射炮的状态进行实时显示;教学模块包括视频文件和帮助文件,视频文件主要用以连续或分步重现火箭深弹发射炮发射准备以及发射的全过程,帮助文件主要以文字和图表的形式详细讲解火箭深弹发射炮的发射步骤及注意事项。考核模块分为操作和笔试两部分,系统对操作部分以时间和出错率为标准进行自动评分,对笔试客观题部分主要以试题参考答案为标准进行评分,对主观题仍采用人工评分,所有考核成绩都以MicrosoftAccess数据格式进行存档管理。考核系统供学员使用,学员在操作端完成考试,考核试题分为客观题和主观题。由于操作试题的特殊性,系统将自动评分功能加在了控制场景的文件中,当用户使用交互操作的功能时,系统将进行相应的判断并给出合格或不合格的结论。

2关键技术应用

2.1实体建模技术

实体建模根据模型重要程度的不同,分为精细建模和粗略建模。精细建模针对场景中的对教学训练起主导作用的装备进行,在这里就是指火箭深弹及其发射炮。精细建模的方法是首先以3DMAX为工具建立实体模型,并对模型进行纹理贴图和渲染,以增强模型的真实感,然后利用第三方插件将3d模型导出为XNA能够接收的FBX格式,并与纹理贴图一起导入软件开发程序的Content目录中。图2和图3所示分别为火箭深弹与发射炮的3D模型。粗略建模则是针对不需要操作仅作为背景环境的模型进行的,例如火箭深弹发射炮所安置的舰艇平台。由于舰艇平台的实体建模非常复杂,工作量大,而且不涉及操作使用,仅作为背景对象,所以可以采用现有的舰艇三维模型,或者根据现有的三维模型进行适当的裁剪,去掉影响火箭深弹发射炮的操作使用观察效果的设备,防止模型被遮盖,同时去掉不必要的舱面物品,突出火箭深弹发射炮的主体地位。

2.2场景渲染技术

2.2.1天空常见的天空渲染技术有三种,分别为天空盒、天空圆柱和天空苍穹。在软件开发中,需考虑天空的动态效应,模拟云层随风飘动的景象,因而软件开发主要采用天空苍穹,天空穹顶的网格划分基本本质上也是一张网格顶点图,根据顶点的不同高度生成半球状。在天空体的渲染过程中,最为关键的是保持相机始终处于立方体的中心位置,这样才能让用户在移动相机时,保持相机和立方体之间的距离不变,使场景给人一种在无穷远处的印象,同时为了适应场景,在绘制过程中让画面的深度缓冲不可写,这样就无需缩放天空体。2.2.2水面真实的水面要考虑多种因素,如水面波动、折射与反射、菲涅尔方程以及各种飞溅、刻蚀及开尔文水楔等现象。对于海水来说,水深较深,不需要考虑折射效果,只需考虑反射效果即可。另外,海水在风力作用下的波高幅度变化较大,因此,要求的顶点数目较多,需实时调整顶点的高度,产生“波涛”的效果[3]。2.2.3尾焰火箭深弹飞行时的尾焰主要依靠的是粒子系统绘制。首先初始化粒子,设置与粒子效果相关的常数,让每个粒子系统都有不同的表现,而且子类可以重写粒子系统中的虚拟方法,这样就能更加灵活地控制粒子的创建,并且所有粒子都是在程序开始时分配的,然后就可以根据需要重用,在运行时无需重新实例化。这样可以避免在运行期间的垃圾回收。但是,这也带来一些问题:如有可能在增加粒子时,所有粒子仍在使用中。在这种情况中,就不能正常添加粒子,进而导致期望的特效无法显示。解决的方法是在粒子系统构造函数中添加一个参数,这个整数类型的参数指定了整个场景需要的最大特效粒子数量,这样使用粒子系统的开发者就可以指定适当数量的粒子用于特效显示,从而获取最好的视觉效果[4]。

2.3XNA嵌入Winform窗口技术

由于教学训练软件既要显示发射炮的操作过程、同时还要显示操作结果,所以必须通过若干窗口在不同角度同步显示发射炮的不同部位,这就需要将XNA嵌入Winform窗口,将三维模型绘制在其不同的Panel控件上,而XNA在默认情况下并不支持改变绘图的句柄,因此,需要对原有函数进行适当修改。首先需要使XNA能够取得Winform的Panel,为此进入form窗体代码加入以下语句:publicControlPanel{get{returnsplitContainerPanel;}};然后通过以下代码改变XNA绘制的位置,让3D模型及动画显示在panel控件上GraphicsDeviceInformation.PresentationParameters.DeviceWindowHandle除此之外,在XNA框架的Program类中添加以下代码用以改变XNA的启动方式,并在XNA本身的窗口开启时将其关闭。StaticGame1game;StaticvoidMain(string[]args){MainForm.form=newMainFrom();Form.Disposed+=newEventHandler(form_Disposed);using(game=newGame1(form)){form.Show();game.Run;}}Staticvoidform_Disposed(objeetsender,EventArgse){game.Exit():}这样就通过Panel控件代替窗口实现了对发射炮多个部位的同步显示[5]。

3交互操作功能的实现

交互操作是教学训练软件最重要的功能。其目的就是让用户通过与场景的交互掌握火箭深弹发射炮的操作使用方法。实现交互操作功能就是实现用户对发射炮模拟的操作过程并向用户实时反馈模拟的操作结果。如图4所示,模拟实际的操作过程是通过用户使用鼠标在屏幕上进行移动或点击来实现的,需要依靠XNA中的选择和拾取、平移和旋转两项技术;而实际操作结果的模拟在XNA中则是通过动画或声效演示来实现的,其实现的关键技术是位置检测或碰撞检测。此三项技术的核心内容分别是:1)对3D模型的选择和拾取是通过相交检测实现的,即创建一条射线,然后检查空间中该模型是否与这条射线相交。2)对3D模型的平移是通过改变该模型的位置坐标实现的,而对3D模型的旋转则需要同时确定其旋转的中心以及旋转的角度。3)对3D模型的位置检测可以通过其位置坐标来实现,而对两个3D模型的碰撞检测则需要分别建立围绕两个3D模型的包围球或包围盒,并计算两者的中心距离再进行判断。综上所述,火箭深弹发射炮教学训练软件主要采用的就是XNA中的以上三项技术。这些技术目前已经相当成熟,所以这里只作简单介绍。通过以上技术最终实现的火箭深弹发射炮教学训练软件界面如图5所示。

4结束语

采用XNA技术结合Winform窗口设计程序研制开发的火箭深弹发射炮教学训练软件具备了教学考核以及模拟训练功能,既可以进行理论知识的介绍和考察,又能够实现用户对火箭深弹发射炮的操作过程的模拟及检验,真正实现了火箭深弹发射炮操作使用教学训练的数字化。尤其是采用XNA技术实现了3D动画实时交互及显示,让使用人员的操作即时可见,从而达到与实装训练相同的效果,而训练成本和操作危险却大大降低,对于提高使用人员训练的科学性与安全性,提升教学训练效果具有重要意义。

参考文献:

[1]姜世寰.低价高效的新型反潜武器———近程自导深弹[J].水雷战与舰船防护,2003,(5).

[2]GrootjansR.XNA3.0GameProgrammingRecipes:APro-blem-solutionApproach[M].NewYork:Apress,2009:5-14.

[3]倪文峰,王忠宾,李舒斌,等.基于虚拟机的采煤机远程监控平台关键技术[J].煤炭科学技术,2009,37(2):76-78,81.

[4]赵经成.虚拟仿真训练系统设计与实践[M].北京:国防工业出版社,2008.

[5]杨关胜.精通XNA图形与游戏程序设计[M].北京:人民邮电出版社,2012.

作者:任磊 李文哲 梁良 单位:海军大连舰艇学院


    更多人力资源管理论文详细信息: 火箭深弹发射炮教学训练软件开发概述
    http://www.400qikan.com/mflunwen/gllw/rlzygl/119729.html

    相关专题:英语口语翻译器 少年电世界


    上一篇:计算机网络技术的应用发展
    下一篇:机电一体化中电机控制与保护

    认准400期刊网 可信 保障 安全 快速 客户见证 退款保证


    品牌介绍