首页 > 范文大全 > 正文

在Vega中实现虚拟战场中的碰撞和特效

开篇:润墨网以专业的文秘视角,为您筛选了一篇在Vega中实现虚拟战场中的碰撞和特效范文,如需获取更多写作素材,在线客服老师一对一协助。欢迎您的阅读与分享!

摘要:碰撞检测和特效显示是虚拟战场环境中一个必不可少的部分,本文通过在vega中调用相应的API函数可实现物体问的碰撞和特效的生成。

关键词:Vega;碰撞;特效

一、实现虚拟物体的碰撞检测

在虚拟战场环境中,由于用户的交互和物体的运动,物体间经常可能发生碰撞,此时保持环境的真实性,需要及时检测到这些碰撞。并计算相应的碰撞反应,更新绘制结果,否则物体间会发生穿透现象,破坏虚拟环境的真实感和用户的沉浸感。这里有两个问题需要解决。一是检测到碰撞的发生和碰撞的位置。二是计算碰撞后的反应。而碰撞检测是计算反应的先决条件,因此,碰撞检测是虚拟环境中一个必不可少的部分。

系统用相交矢量及物体的相交矢量类来实现碰撞检测。相交矢量使用一种特别的方法在一个对象物体和当前方法默认的观测体之间进行交叉测试。通常的相交矢量包括两个体类事件,也可以包含一个体类事件和一个场景类事件。任何一个几何图元都可以定义为体,例如,一个长方体、球体、圆柱体或截锥体。一个相交矢量需要选择一个目标和一种计算方法。当相交矢量与定义了相交矢量类的目标发生交叉时,即产生了碰撞,修正运动体或者观察者视点的位置和方向以完成碰撞检测。

地形高度、视线以及对象物的交叉访问都是虚拟仿真应用程序所需要的,相交矢量用在Vega中定义这些类型的碰撞检测和交叉试验。Vega中定义了8种相交矢量方法:Z、HAT、Tripod、Los、Bump、XYZPR和Vol-ume。其作用和适用条件各不相同。由于在战场环境中,所有的模型除可能发生碰撞外。还很有可能遭受来自某一不明方位炮弹的打击碰撞,因此本文只利用了其中的Bump方法来实现对模型位置的检测。

这种特别的方法就是利用互相垂直的6段线段,即相交矢量。这些相交矢量沿X,Y和z轴的正负向延伸(如图1)。这些相交矢量相当于探测器,能够探测目标物体与自身的相对位置。探测到的结果保存在一个内部缓冲区中,以一个数组的形式存储。需要时,可以访问该数组获取相关数值,此时,就可以使用Vega自带的函数vgGetlsectResult()来访问这些结果数据。相交矢量可以预先设定它们的长度,也就是每条相交矢量可以探测的范围。当目标物体超出这个范围,其位置就不可知。

通过vgGetlsectResult()得到的碰撞结果为24个数据,我们用数组来定义:

float bumpresult[24]。在bumpresult[i]中,当i=0,4,8,12,16,20时,分别表示X、Y和Z轴负正向相交矢量的长度;则bumpresult [i+1]、bumpresult[i+2]以及bumpresult[i+2]为相交点坐标值。

下面为坦克车辆和地面产生碰撞的例子,首先调用坦克模型是通过bump=vgFindIsect(“tanklsector”)获得ADF中的相交矢量,然后在zsVegaView类中的postFrame函数添加如下代码:

vgGetlsectResult(bump,VGIS_GEIBUMP,bumpresult);获取坦克碰撞结果

“(bumpresult[12]>0.5nIbumpresult[8]>0.5fllbumpresult[01]>0.5f1Ibumpresult[4]>0.50{//当碰撞相交矢量长度大于0.5时

dyv=dxv=0.0f;//X轴和Y轴的移动速度为0

dy=dy+dyv;dx=dx+dxv;//坦克X轴和Y轴的位置坐标加移动速度

ChangePlayPos(dx.dy.dz.dh.dp.dr);//改变坦克模型的位置坐标

注意:设置相交矢量长度的阀值不宜太小,否则很小的坡度车辆就无法行走。

二、战场特效在Vega中的实现

随着演习时钟的推进,战场态势“瞬息万变”,为了使指挥员感受到浓浓的战场氛围,实现一些特殊效果是很有必要的。Vega还拥有Special Effects(特殊效果)功能模块,通过定义很多参数来实现交互式的视景仿真,实现某些战场自然环境特效(如:雾、雨特效等)和战场特效(如:烟火、爆炸特效等),以增加指挥员的沉浸感。Vega为用户提供了两种特殊效果实现的方式,第一种是基于动态纹理技术,第二种是基于粒子系统 型,分别对应着Old和New模式。Vega的特殊效果模块如表1。

用户可以通过LynX预定义一些特殊效果,也可以在VegaAPI中动态的控制特殊效果的显示。别用以上特效可以增加系统的真实性,达到逼真体验。Vega中战场爆炸特效图如图2所示。

参考文献

[1]龚卓蓉Vega程序设计,国防工业出版社,2002.

[2]张宏军,作战指挥训练模拟系统,理工大学出版社,20014.