多域战场态势要素仿真及路径规划方法

文档序号:32340406发布日期:2022-11-26 09:34阅读:186来源:国知局
多域战场态势要素仿真及路径规划方法

1.本发明涉及战场态势仿真,计算机图形学领域,具体有一种利用各作战域三维实体装备模型表征多域战场态势要素,并利用多项式插值的算法,对态势仿真平台仿真场景内输入的各点插值形成多项式曲线,使得战场态势仿真中各作战域态势要素沿着生成路径曲线运动的方法。


背景技术:

2.传统的态势仿真平台的展示效果多基于二维地图,通过在二维电子地图上的一系列象形标绘以达到对战场的态势仿真效果。或是存在如仿真系统作战态势要素作战域单一,只能表征某一单一作战域,实体装备只能静置于地图上等等相关缺陷,极大影响了挥员对战场态势的认知效果,以及对战场整体形势的把握。
3.战场上的形式是瞬息万变的,军事装备并不会静止的处于某一位置点,而随时移动变化。这对于战场态势仿真软件,就需要赋予实体态势要素运动效果,仿真多域战场环境中的装备移动,表征作战环境中的运动趋势。因此多域战场仿真中实体要素运动规划功能是仿真软件实现战场仿真系统更加真实地仿真现实环境的重要环节,辅助指挥员更加清晰认知战场的重要手段。


技术实现要素:

4.为了克服现有技术的不足,本发明提供一种多域战场态势要素仿真及路径规划方法。本发明完成一系列战场三维实体模型建模,如飞机,火炮,舰船等,加载入态势仿真平台,并按照对应作战域对其进行分类管理,从而构建可以表征多域战场态势要素的实体模型库。通过鼠标在三维场景中选取若干离散的点,利用多项式插值的方式对所选的各点在三维场景中进行插值处理,生成插值曲线之后通过direct3d图形接口对选取的离散点及生成的路径曲线进行渲染绘制,之后与实体模型进行绑定,从而赋予实体模型运动属性。
5.结合态势仿真平台,本发明通过完成一系列不同作战域的实体模型的三维建模,并加载入态势仿真平台内,构建可以表征多域战场态势要素的三维实体装备模型库。此外通过鼠标在三维场景点选或外部导入方式输入关键点生成路径曲线后与实体模型进行绑定,使实体模型按照曲线路径实时运动。从而增强多域战场环境中指挥员的决策优势,以及为取得战场主动权有重大意义。
6.本发明解决其技术问题所采用的技术方案包括以下步骤:
7.步骤一:多域战场实体模型建模与导入
8.利用3ds max三维建模渲染软件,完成对空、天、地、海不同作战域的各类实体要素的三维建模,之后通过direct3d对网格模型的读取接口将相关模型文件读入态势仿真系统中;
9.步骤二:构建多域战场实体模型库
10.根据实体模型所属的作战域对实体模型进行标识对应,通过不同标号为实体模型
添加所属作战域属性的参数,从而进行归类管理,并且通过direct3d模型加载接口,使得通过鼠标单击添加方式,对各个实体模型在三维仿真系统内完成渲染绘制的添加操作;
11.步骤三:路径规划与生成
12.3.1)通过手动选择或外部导入数据获取路径关键点
13.通过direct3d拾取技术,捕捉鼠标在态势仿真平台中地形上所点选的路径关键点的三维坐标值(x,y,z),并将各个坐标值存放在数组容器中;
14.3.2)根据以上关键点插值生成曲线
15.根据步骤3.1)中读取的所有路径关键点的数组容器,根据多项式插值算法对关键点进行插值处理,形成路径曲线,通过direct3d顶点缓存技术,根据direct3d的基本图元点、直线绘制的绘制方式绘制路径的关键点及插值后的曲线,并通过参数化接口的形式控制插值点个数从而控制曲线光滑程度;
16.步骤四:将实体模型与生成的路径关联绑定
17.通过捕捉场景内的实体模型,将生成的路径与选择的场景实体模型相互关联绑定,为之后驱动模型按照生成的路径实时运动支撑;
18.步骤五:驱动模型根据绑定的路径实时运动
19.将实体模型与所生成的路径绑定之后,通过改变驱动响应参数的布尔值,实现调整模型为运动态或静止态,若调整为运动态,则实体模型根据生成路径曲线实时循环调整实体模型的位置,从而达到实体沿生成路径不断运动的效果,若调整为静止态,实体模型不再运动,变为停止。
20.所述步骤二实体模型库的构建步骤为:
21.通过将步骤一所完成的各作战域实体要素的三维建模保存成可供direct3d读取的.x类型文件,之后调用direct3d库函数id3dxbuffer接口的d3dxloadmeshfromx(l"plane.x",

),将该模型的.x文件内各信息读入态势仿真平台进程内,其中plane.x为模型文件名称;
22.读入系统进程后,模型的.x文件中的三维物体模型的材质和纹理信息将被保存在id3dxbuffer接口对象中,该接口对象保存在一块连续的内存中,之后在向三维场景内添加实体模型时,通过id3dxmseh接口中drawsubset方法绘制网格模型中的每一个子集,并渲染过程中调用setmaterial和settexture方法设置模型的材质和纹理;
23.将读取的模型文件信息存放入acess数据库,同时为其增加跟作战域类型相关的额外参数属性type,其中type值为0表示陆域实体模型,为1表示海域实体模型,2表示空域实体模型,3表示天域实体模型。
24.所述步骤3.1)中鼠标点选获取路径关键点的具体步骤为:
25.通过场景摄像机ic3dengcamera类声明的对象pcamera,调用成员函数如下:
26.pcamera-》pick(&pick_x,&pick_y,&pick_z)
27.此函数内部通过调用direct3d拾取技术捕捉鼠标在三维地理信息系统上所点选的三维坐标点,并将捕捉到的三维坐标点的结果传递给double类型变量pick_x,pick_y,pick_z,表示捕捉到的仿真系统内的三维大地坐标值,并以此方式捕捉剩余所需各点的坐标值;
28.之后以此三个坐标值为参数构造keypoint类对象,以表示该坐标点:
29.keypointkeypoint(pick_x,pick_y,pick_z,)
30.为将每次添加的坐标点的keypoint对象统一管理,将路径对象keypoint及其所对应的id号m_id存入c++stl中map类容器m_keypointmap内:
31.m_keypointmap.insert(pair《int,keypoint》(keypoint.m_id,keypoint))
32.由此得到路径关键点。
33.所述步骤3.2)中的插值生成曲线的具体步骤是:
34.插值生成曲线为给出若干控制点及约束条件,构造出一条曲线经过或者逼近控制点。本发明采用多项式插值方式,通过鼠标在态势仿真平台场景内点选给出的n+1个控制点,构造出一条n次曲线依次经过控制点。
35.n次参数曲线的参数方程为:
36.pn(t)=antn+a
n-1
t
n-1
+....+a0t0(1)
37.其中为曲线插值时的步进长度,三维场景中一个点的空间坐标信息包含(x,y,z)三维空间坐标值,即对于空间中n+1个点(x0,y0,z0),(x1,y1,z1)...(xn,yn,zn),代入公式(1)中,可将其改为关于(x,y,z)的参数方程:
[0038][0039][0040][0041]
对于参数方程(2),以x(t)项为例,将空间内n+1个关键点坐标信息的x值带入:
[0042][0043]
可得:
[0044][0045]
为计算系数将矩阵方程左侧范德蒙矩阵求逆变换得:
[0046][0047]
通过将输入得各关键点坐标信息x值带入公式(4),求得系数参数方程(2)内求解y(t),z(t)项同理,由此可得到曲线的各系数。
[0048]
遍历从鼠标点选的map类容器m_keypointmap的各个关键点,求得所有控制点之间的多项式插值控制点集,使用直线连接控制点集,便得到光滑的曲线;
[0049]
遍历完关键点后,将关键点保存在direct3d顶点缓存对象m_pvb;之后将关键点通过生成曲线的所有点集,并将创建的顶点缓存保存到顶点缓存对象m_pvb2,在direct3d基本图元渲染绘制点、线方式方法,对曲线点集进行渲染,最终就绘制出一条突出关键点的光滑路径曲线。
[0050]
所述步骤五所涉及的驱动模型运动的具体步骤为:
[0051]
模型和路径在设计时为独立模块,因此可以对路径任意选择要绑定的模型,将模型的名称赋给每条路径path类中的objname变量,更改isrun的标记位,置为运动,通过queryinterface("ic3deditmd")函数请求模型库的接口,更改模型的位置,在主渲染函数中,不停的一帧一帧更新模型的位置,使得模型沿着规划的路径运动,驱动函数如下:
[0052]
pc3deditmd-》positionpart(objname,xx,yy,zz);
[0053]
其中pc3deditmd为通过queryinterface获取到的管理实体模型的ic3deditmd类型的指针变量,该变量通过调用方法positionpart调整对应模型在三维空间内的位置,其中objname为对应模型的模型名称,(xx,yy,zz)为生成曲线的点集的各个空间坐标值;
[0054]
通过循环遍历曲线点集内各点并调用positionpart可使模型实时沿着曲线各点不断变换空间位置,达到沿曲线不断运动效果。
[0055]
本发明的有益效果在于利用3dmax完成一系列多域战场实体模型建模,并将其加载入态势仿真平台内,根据其所属作战域对其完成分类管理。利用多项式曲线插值方式对鼠标在态势仿真平台内点选的若干坐标点插值形成多项式曲线离散后的点集。通过direct3d顶点缓存技术将离散点集渲染成可视化曲线。之后将战场实体模型与生成的曲线绑定,驱动模型沿着生成曲线不断运动。为多域作战环境中提升指挥员认知战场效果,取得战场作战主动权提供了支撑。
附图说明
[0056]
图1是本发明多域实体模型库界面
[0057]
图2是本发明路径规划与生成流程图
[0058]
图3是本发明空域态势仿真及路径生成示意图。
[0059]
图4是本发明陆域态势仿真及路径生成示意图。
[0060]
图5是本发明海域态势仿真及路径生成示意图。
具体实施方式
[0061]
下面结合附图和实施例对本发明进一步说明。
[0062]
本发明的多域战场态势要素仿真及路径规划方法包括以下步骤:
[0063]
步骤一:多域战场实体模型建模与导入
[0064]
利用3ds max三维建模渲染软件,完成对空、天、地、海不同作战域的各类实体要素的三维建模,之后通过direct3d对网格模型的读取接口将相关模型文件读入态势仿真系统中;
[0065]
步骤二:构建多域战场实体模型库
[0066]
根据实体模型所属的作战域对实体模型进行标识对应,通过不同标号为实体模型添加所属作战域属性的参数,从而进行归类管理,并且通过direct3d模型加载接口,使得通过鼠标单击添加方式,对各个实体模型在三维仿真系统内完成渲染绘制的添加操作;
[0067]
步骤三:路径规划与生成
[0068]
3.1)通过手动选择或外部导入数据获取路径关键点
[0069]
通过direct3d拾取技术,捕捉鼠标在态势仿真平台中地形上所点选的路径关键点的三维坐标值(x,y,z),并将各个坐标值存放在数组容器中;
[0070]
3.2)根据以上关键点插值生成曲线
[0071]
根据步骤3.1)中读取的所有路径关键点的数组容器,根据多项式插值算法对关键点进行插值处理,形成路径曲线,通过direct3d顶点缓存技术,根据direct3d的基本图元点、直线绘制的绘制方式绘制路径的关键点及插值后的曲线,并通过参数化接口的形式控制插值点个数从而控制曲线光滑程度;
[0072]
步骤四:将实体模型与生成的路径关联绑定
[0073]
通过捕捉场景内的实体模型,将生成的路径与选择的场景实体模型相互关联绑定,为之后驱动模型按照生成的路径实时运动支撑;
[0074]
步骤五:驱动模型根据绑定的路径实时运动
[0075]
将实体模型与所生成的路径绑定之后,通过改变驱动响应参数的布尔值,实现调整模型为运动态或静止态,若调整为运动态,则实体模型根据生成路径曲线实时循环调整实体模型的位置,从而达到实体沿生成路径不断运动的效果,若调整为静止态,实体模型不再运动,变为停止。
[0076]
所述步骤二实体模型库的构建步骤为:
[0077]
通过将步骤一所完成的各作战域实体要素的三维建模保存成可供direct3d读取的.x类型文件,之后调用direct3d库函数id3dxbuffer接口的d3dxloadmeshfromx(l"plane.x",

),将该模型的.x文件内各信息读入态势仿真平台进程内,其中plane.x为模型文件名称;
[0078]
读入系统进程后,模型的.x文件中的三维物体模型的材质和纹理信息将被保存在id3dxbuffer接口对象中,该接口对象保存在一块连续的内存中,之后在向三维场景内添加实体模型时,通过id3dxmseh接口中drawsubset方法绘制网格模型中的每一个子集,并渲染过程中调用setmaterial和settexture方法设置模型的材质和纹理;
[0079]
将读取的模型文件信息存放入acess数据库,同时为其增加跟作战域类型相关的额外参数属性type,其中type值为0表示陆域实体模型,为1表示海域实体模型,2表示空域实体模型,3表示天域实体模型。
[0080]
之后为多域战场实体模型库搭建操作界面如1图所示。
[0081]
所述步骤3.1)中鼠标点选获取路径关键点的具体步骤为:
[0082]
通过场景摄像机ic3dengcamera类声明的对象pcamera,调用成员函数如下:
[0083]
pcamera-》pick(&pick_x,&pick_y,&pick_z)
[0084]
此函数内部通过调用direct3d拾取技术捕捉鼠标在三维地理信息系统上所点选的三维坐标点,并将捕捉到的三维坐标点的结果传递给double类型变量pick_x,pick_y,pick_z,表示捕捉到的仿真系统内的三维大地坐标值,并以此方式捕捉剩余所需各点的坐标值;
[0085]
之后以此三个坐标值为参数构造keypoint类对象,以表示该坐标点:
[0086]
keypointkeypoint(pick_x,pick_y,pick_z,)
[0087]
为将每次添加的坐标点的keypoint对象统一管理,将路径对象keypoint及其所对应的id号m_id存入c++stl中map类容器m_keypointmap内:
[0088]
m_keypointmap.insert(pair《int,keypoint》(keypoint.m_id,keypoint))
[0089]
由此得到路径关键点。
[0090]
所述步骤3.1)中的插值生成曲线的具体步骤是:
[0091]
插值生成曲线为给出若干控制点及约束条件,构造出一条曲线经过或者逼近控制点。本发明采用多项式插值方式,通过鼠标在态势仿真平台场景内点选给出的n+1个控制点,构造出一条n次曲线依次经过控制点。
[0092]
n次参数曲线的参数方程为:
[0093]
pn(t)=antn+a
n-1
t
n-1
+....+a0t0(1)
[0094]
其中为曲线插值时的步进长度,三维场景中一个点的空间坐标信息包含(x,y,z)三维空间坐标值,即对于空间中n+1个点(x0,y0,z0),(x1,y1,z1)...(xn,yn,zn),代入公式(1)中,可将其改为关于(x,y,z)的参数方程:
[0095][0096][0097][0098]
对于参数方程(2),以x(t)项为例,将空间内n+1个关键点坐标信息的x值带入:
[0099][0100]
可得:
[0101][0102]
为计算系数将矩阵方程左侧范德蒙矩阵求逆变换得:
[0103][0104]
通过将输入得各关键点坐标信息x值带入公式(4),求得系数参数方程(2)内求解y(t),z(t)项同理,由此可得到曲线的各系数。
[0105]
遍历从鼠标点选的map类容器m_keypointmap的各个关键点,求得所有控制点之间的多项式插值控制点集,使用直线连接控制点集,便得到光滑的曲线;
[0106]
遍历完关键点后,将关键点保存在direct3d顶点缓存对象m_pvb;之后将关键点通过生成曲线的所有点集,并将创建的顶点缓存保存到顶点缓存对象m_pvb2,在direct3d基本图元渲染绘制点、线方式方法,对曲线点集进行渲染,最终就绘制出一条突出关键点的光滑路径曲线。
[0107]
所述步骤五所涉及的驱动模型运动的具体步骤为:
[0108]
模型和路径在设计时为独立模块,因此可以对路径任意选择要绑定的模型,将模型的名称赋给每条路径path类中的objname变量,更改isrun的标记位,置为运动,通过queryinterface("ic3deditmd")函数请求模型库的接口,更改模型的位置,在主渲染函数中,不停的一帧一帧更新模型的位置,使得模型沿着规划的路径运动,驱动函数如下:
[0109]
pc3deditmd-》positionpart(objname,xx,yy,zz);
[0110]
其中pc3deditmd为通过queryinterface获取到的管理实体模型的ic3deditmd类型的指针变量,该变量通过调用方法positionpart调整对应模型在三维空间内的位置,其中objname为对应模型的模型名称,(xx,yy,zz)为生成曲线的点集的各个空间坐标值;
[0111]
通过循环遍历曲线点集内各点并调用positionpart可使模型实时沿着曲线各点不断变换空间位置,达到沿曲线不断运动效果。
[0112]
本发明的有益效果在于利用3dmax完成一系列多域战场实体模型建模,并将其加载入态势仿真平台内,根据其所属作战域对其完成分类管理。利用多项式曲线插值方式对鼠标在态势仿真平台内点选的若干坐标点插值形成多项式曲线离散后的点集。通过
direct3d顶点缓存技术将离散点集渲染成可视化曲线。之后将战场实体模型与生成的曲线绑定,驱动模型沿着生成曲线不断运动。为多域作战环境中提升指挥员认知战场效果,取得战场作战主动权提供了支撑。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1