本发明属于作战仿真,具体涉及一种基于三维架构的作战仿真引擎。
背景技术:
1、近年来,作战仿真技术为世界各国在日常演习训练、效能评估等领域起到了重要支撑作用,也形成了一大批面向多军种、跨越多层级的作战仿真平台。随着人工智能技术和计算机图形硬件的迅猛发展,传统作战仿真基于二维图形显示、后台进程计算的方式已显然难以满足部队模拟演练高逼真度、精细化的现实需求。
2、当前国内作战仿真系统大多数为windows、qt界面下所开发的应用程序。现有技术cn105184017a公开了一种基于openscenegraph的实时战场仿真系统及方法,仿真系统包括,模型构建模块,用于生成战场环境中的态势要素;环境仿真模块,用于对战场环境进行仿真,所述环境仿真模块包括 :地形仿真单元,用于根据由高程文件生成的地形数据库进行地形仿真;天气仿真单元,用于通过计算不同时段太阳所处的位置,得出相应时段的光照颜色和强度,同时,并根据所要仿真的不同的天气情况下的天空环境将其渲染到天空上,从而使地形和天气仿真效果更加真实。cn113781856a公开了一种联合作战武器装备运用训练仿真系统及其实现方法,该系统包括基础设施层、仿真资源层、仿真平台层和仿真应用层,通过模拟不同武器装备不同环境下的运用情况,产生近似实战的装备运用训练效果,增强了沉浸感。但是现有技术对智能体行为、高精度模型与交互模拟的精细度还不够高,缺少较为可信的物理学支撑工具,无法支撑开展如山地丛林、城市街区、楼宇等密闭空间的高精度作战仿真。现有技术都采用计划命令方式来进行仿真想定录入,针对每个仿真对象设置其作战行动,存在计划命令单一、操作效率低下等现实问题,特别是难以支持如联合作战、城市作战等复杂场景下高精度作战行动的录入。
3、如何克服当前作战仿真引擎颗粒度粗、环境-实体交互难、作战行动录入方式单一等缺陷,成为本领域亟待解决的问题。
技术实现思路
1、为克服上述现有技术的不足,本发明提供一种基于三维架构的作战仿真引擎。本发明具体采用如下技术方案:
2、一种基于三维架构的作战仿真引擎,所述基于三维架构的作战仿真引擎,包括渲染系统、输入系统、声音系统、物理系统、动画系统、智能系统、逻辑系统;
3、所述渲染系统用于初始化渲染api、创建和绘制文本、绘制纹理几何图形、实现硬件光照并在完成工作后整理系统;
4、所述输入系统用于处理用户外设的操作输入信息,通过directx或opengl的输入api实现对于不同输入设备的输入检测;
5、所述声音系统用于处理引擎中的声音输出信息,通过directx或opengl api的声音模块处理所需的全部声音,负责所需要声音的调用和播放,包括仿真背景音乐和实体3d音效;
6、所述物理系统用于在引擎中构成现实与分解现实,包括重力模拟、动力学模拟与碰撞检测;
7、所述动画系统用于模拟仿真实体与环境变化的动画效果,基于动画数据信息和骨架获取单一模型,包括装备、人员模型的每一片,并按照动画设计的关键帧进行模型的移动;
8、所述智能系统用于对仿真过程中各智能体的行为进行模拟,其包含一个脚本系统,并通过所述脚本系统实现有限状态机和决策树算法驱动的仿真实体行为模型;
9、所述逻辑系统用于仿真过程中的时间推进与仿真实体状态、环境状态与事件分发管理,其基于c++语言与windows api完成仿真主循环的构建,并按仿真步长进行模拟计算。
10、进一步,所述渲染系统用于通过directx或opengl图形接口在计算机屏幕上完成几何图形、文本的绘制,完成图形用户界面的渲染,完成硬件光照的渲染,以及完成仿真实体与地形表面纹理在对应几何体上的渲染。
11、进一步,所述输入系统基于directinput库实现,包括执行下列步骤实现:
12、(1)创建设备之前,初始化directinput系统;
13、(2)调用输入系统的createdevice成员函数创建输入设备;
14、(3)调用设备的成员函数,设置设备数据格式;
15、(4)调用setcooperativelevel()函数设置设备的合作等级;
16、(5)调用acquire()函数获取输入设备;
17、(6)获取设备当前状态;
18、(7)执行相应操作。
19、进一步,所述物理系统基于physx开源库实现,具体构成方法如下:
20、(1)开始仿真;
21、(2)将计算数据发送到物理仿真线程;
22、(3)检测模拟是否完成,如果是,更新状态数据缓冲;
23、(4)交换状态数据缓冲,在下一帧中缓冲结果被引擎访问,后台缓冲继续参数模拟
24、(5)设置physx::pxscenedesc 的flag;
25、(6)函数调用。
26、进一步,所述动画系统用于实现地形绘制、实体绘制、光照绘制、材质绘制、粒子绘制、动画绘制、特效绘制。
27、进一步,所述智能系统包含行为树处理系统与脚本处理系统;
28、所述树处理系统通过文件管理模块创建行为树工程,通过节点编辑模块,创建基于行为树结构描述的军事规则,对每个行为节点进行属性设置和功能代码编辑的实现,最终通过代码生成器生成基于lua脚本语言的执行代码;
29、所述脚本处理系统基于c++语言的仿真想定脚本编辑方法,其通过定义api的方式,通过脚本生成包含指导引擎工作的指令文件,在不需要重新编译程序情况下,通过在文件中放置指令,引擎识别后按照脚本中内容执行指令,以代码编辑方式进行仿真对象实体的驱动。
30、本发明基于三维图形接口实现战术级高精细度作战仿真,本发明的渲染系统可动态根据渲染规模进行仿真步长调整,本发明的属性脚本与命令脚本方法可通过文档编辑方式实现大规模实体计划命令的批量录入,提升了仿真想定编辑效率。
1.一种基于三维架构的作战仿真引擎,其特征在于,所述基于三维架构的作战仿真引擎,包括渲染系统、输入系统、声音系统、物理系统、动画系统、智能系统、逻辑系统;
2.根据权利要求1所述的一种基于三维架构的作战仿真引擎,其特征在于,所述渲染系统用于通过directx或opengl图形接口在计算机屏幕上完成几何图形、文本的绘制,完成图形用户界面的渲染,完成硬件光照的渲染,以及完成仿真实体与地形表面纹理在对应几何体上的渲染。
3.根据权利要求1所述的一种基于三维架构的作战仿真引擎,其特征在于,所述输入系统基于directinput库实现,包括执行下列步骤实现:
4.根据权利要求1所述的一种基于三维架构的作战仿真引擎,其特征在于,所述物理系统基于physx开源库实现,具体构成方法如下:
5.根据权利要求1所述的一种基于三维架构的作战仿真引擎,其特征在于,所述动画系统用于实现地形绘制、实体绘制、光照绘制、材质绘制、粒子绘制、动画绘制、特效绘制。
6.根据权利要求1所述的一种基于三维架构的作战仿真引擎,其特征在于,所述智能系统包含行为树处理系统与脚本处理系统;