APP下载

基于粒子系统的照明弹仿真方法

2014-12-18徐立涛邓启亮

电子科技 2014年3期
关键词:粒子系统弹丸粒子

徐立涛,邓启亮

(西安电子科技大学物理与光电工程学院,陕西西安 710071)

在计算机图形学中,粒子系统被认为是成功的模拟模糊物体的图形生成算法。1983年,William T.Reeves提出了一套模拟模糊物体的理论,此方法称为粒子系统。该系统用大量粒子作为基本元素,并将这些基本元素聚集起来,形成不规则的模糊物体。在粒子系统中,使用许多粒子的集合来表示模糊物体,每个粒子的属性均具有一定的随机性,但所有粒子的整体具有规律性,可表现出模糊物体的特征。粒子系统被广泛运用于虚拟现实、三维仿真、游戏开发、电影特效、科学仿真、科学计算可视化等领域。

照明弹的燃烧效果属于模糊物体的范畴。其是一种用于发光照明的弹药。照明弹通过点燃照明剂,产生剧烈的燃烧现象,发出耀眼的火光。本文主要研究了照明弹的基本工作原理,使用粒子系统建立了照明弹的模型,并运用面向对象图像渲染引擎 OGRE(Object- oriented Graphics Render Engine)[2-3]实现照明弹效果的动态仿真。

1 粒子系统简介

使用许多微小粒子组成集合体来表示模糊物体的方法,被称为粒子系统理论。粒子系统是一个动态的粒子集合体。在粒子系统中,每个粒子均会经历产生、发展和消亡的过程[4]。每个粒子在产生时,都被赋予了一个生命周期,当一个粒子达到其生命周期时,将被视为消亡粒子而删除。与此同时,新的粒子也在产生,整个粒子系统在不断地更新着自身的状态[5]。

粒子系统中的粒子,具有宏观和微观两种属性。宏观属性指粒子系统的整体形态和运动规律,是粒子系统作为整体需要遵循的规则作用。例如粒子受到重力作用而改变运动轨迹。微观属性指粒子个体的状态参数,通常受到一个随机过程的控制。例如某个粒子在某一时刻的尺寸、形状和运动速度等。

粒子系统仿真物体的具体步骤[6]如下:(1)生成新粒子。(2)为新粒子分配初始属性。(3)遍历所有粒子并删除到达生命周期的粒子。(4)更新存活粒子的属性。(5)存活粒子的图像被渲染到屏幕上。

2 照明弹工作原理分析

照明弹是一种用于发光照明的弹药[7]。照明弹的弹丸主要包括时间引信、弹体、抛射药、照明炬系统、吊伞,且照明炬系统与吊伞相连。照明炬系统内部装有照明剂,照明剂常由金属可燃物、氧化物和粘合剂等物质组成。照明剂燃烧时,能产生几千度的高温,并发射出耀眼的光芒,同时具有一定的燃烧时间。

照明弹通常配备于迫击炮或中小口径榴弹炮等射角较大的火炮。使用时,火炮将照明弹的弹丸发射到预定目标上空。弹丸到达预定的空域时,时间引信作用,点燃抛射药和照明剂。抛射药的燃烧产生大量气体,同时弹丸爆炸照明炬系统和吊伞被抛出,并与弹体分离。吊伞在空气阻力的作用下打开,搭载着照明炬系统缓慢下落,其速度一般为5~8 m/s。同时照明炬系统中的照明剂燃烧,发出耀眼的光芒,照亮周围环境,发光强度可达40~80万cd,持续燃烧时间通常为25 ~60 s。

3 照明弹模型建立

利用粒子系统理论模拟照明弹效果,关键在于理解照明弹的运动与变化过程,建立合适的模型[8]。根据照明弹的工作原理,可将照明弹发射后的时间分为两个阶段,弹丸爆炸前与弹丸爆炸后。本文从照明弹的形态变化过程和运动过程两个方面分别进行设计建模,最终将两个方面的模型整合,形成完整的照明弹模型。

3.1 照明弹形态变化过程建模

根据理论分析以及实际观察的结果,本文采用两组不同的粒子系统来模拟照明弹的形态变化效果。

第一组粒子系统用于模拟爆炸前弹丸的外观形态。弹丸从发射后到爆炸前,外部被弹体包围,形状近似为椭球体,其不发光,且处于高速运动过程,肉眼不易发现。采用32×32的粒子位图圆形作为第一组粒子系统的粒子材质贴图,以模拟弹丸的外观形态。控制第一组粒子系统产生粒子的形状、尺寸和灰度值不变,这便表现出了此阶段弹丸外观基本不变的特征。而照明弹弹丸发射的初始时刻,是将第一组粒子系统置于开启状态。

第二组粒子系统用于模拟爆炸后弹丸的外观形态。在弹丸爆炸的瞬间,照明炬系统中的照明剂开始燃烧,发出明亮耀眼的火光。照明剂燃烧时,中心部分为一亮斑,周围有一圈闪耀的光环。亮斑闪烁,光环的大小也随之变化,且亮斑的闪烁具有一定的随机性。本文使用第二组粒子系统,仿真照明剂的燃烧效果,并采用一张中央明亮周围渐变、边缘呈锯齿状的图片作为第二组粒子系统的粒子材质贴图。使用此粒子系统每秒产生20个粒子,并设置每个粒子的生命周期在0.1~0.3 s中随机取值。粒子达到生命周期时立即消失,同时产生新的粒子,从而使粒子系统的整体处于动态平衡。在此系统中,控制每个粒子的尺寸从初始值迅速地增大,以产生光环闪耀的视觉效果。同时令粒子的灰度值随时间的推移而减小。粒子的灰度衰减的越快,产生的光环效果边缘则越模糊。

动态模拟照明弹的过程中,首先只开启第一组粒子系统,然后在弹丸爆炸的瞬间,关闭第一组粒子系统,并开启第二组粒子系统,以实现照明弹外观形态的转换。

3.2 照明弹运动过程建模

为实现对照明弹运动过程的建模,本文使用OGRE图像渲染引擎,对照明弹进行动态渲染。将粒子系统与一个场景节点(Scene Node)绑定,通过对该场景节点的操作,实现对粒子系统运动过程的控制。首先创建帧监听器FrameListener方法,获取每一帧图像中粒子的运动状态,其中包括粒子的中心位置和运动速度。然后根据粒子的运动状态,为粒子添加相应的力学效果。具体实现过程中,照明弹运动过程建模分为弹丸的上升阶段和下落阶段两部分。

可认为弹丸在最高点位置爆炸,因此弹丸的上升阶段等于弹丸爆炸前阶段。照明弹的弹丸被发射后,初速度方向几乎竖直向上。然后在重力的作用下,弹丸的速度逐渐降低,直到速度降为0。此过程满足公式

其中,v(0)为弹丸的初速度,v(t)为照明弹发射后t秒时刻弹丸的瞬时速度,g为重力加速度,t为照明弹发射后经历的时间。软件模拟的过程中,在FrameListener方法里,添加对粒子状态的监视与控制。粒子的初始速度方向为竖直向上。在每一帧中获取粒子的位置,计算连续两帧图像中粒子移动的距离,以用此距离除以两帧图像的时间差,得到粒子的瞬时速度。当此瞬时速度>0时,设置粒子获得了竖直向下的加速度g,g取9.8 m/s2。

弹丸的下落阶段等于弹丸爆炸后阶段。弹丸在最高点爆炸后,吊伞打开,为照明炬系统提供了竖直向上的空气阻力,此空气阻力的大小等于照明炬系统和吊伞的总重力。照明炬系统在竖直方向上受力平衡,以每秒数米的均速下落,直至照明剂熄灭或落地。在软件模拟的方法中,通过FrameListener方法,获取粒子的瞬时速度。在此瞬时速度为0的瞬间,设置粒子的加速度等于0,同时改变粒子的运动速度,使得粒子做方向向下的匀速直线运动。继续监视粒子的状态,若粒子降落到了地面位置,或粒子系统的开启时间达到设置的阈值,则将粒子系统关闭。

4 照明弹效果渲染

使用OGRE图像渲染引擎将建立的照明弹模型整合,并加载到场景中,实现对照明弹效果的动态渲染[9]。图1为仿真的照明弹效果图像,其中图1(a)为弹丸爆炸前的仿真效果,图1(b)为弹丸爆炸后的仿真效果。

图1 仿真的照明弹效果图像

5 结束语

本文研究了照明弹的基本原理,建立了照明弹的模型,并仿真了照明弹的效果。文中分别从形态变化过程和运动过程两方面,对照明弹进行分析建模,并使用粒子系统模拟照明弹效果,验证其具有动态性,且视觉真实感较强。

[1]WILLIAM T,REEVES L L.Particle systems- a technique for modeling a class of fuzzy objects[J].Computer Graphics,1983,17(3):359 -365.

[2]Clay Culver.OGRE 网上教程[M/OL].(2008-04-08)[2013 -02 -14]http://www.sudu.cn/info/html/edu.

[3]FELIX K.Ogre 3D 1.7 beginner's guide[M].Birmingham,UK:Packt Publishing Ltd.,2010.

[4]王静秋,钱志峰.基于粒子系统的焰火模拟研究[J].南京航空航天大学学报,2001,33(2):166-170.

[5]詹荣开,罗世彬,贺汉根.用粒子系统理论模拟虚拟场景中的火焰和爆炸过程[J].计算机工程与应用,2001,37(5).91 -92,128.

[6]顾大晔.基于粒子系统的实时模糊场景实现[J].电子科技,2011,24(8):5 -7.

[7]郑涛,徐晓刚,欧立铭.基于物理建模的爆炸效果仿真技术[J].舰船科学技术,2011,33(7):3 -8.

[8]冷冕冕,孙少斌.基于粒子系统的战场特效通用模型的设计与实现[J].计算机应用,2009,29(8):2124 -2127.

[9]张桂花,王均.粒子系统理论在三维实时场景渲染中的应用研究[J].大众科技,2011(11):22-25.

猜你喜欢

粒子系统弹丸粒子
超高速撞击下球形弹丸破碎特性仿真研究
神秘的『弹丸』
利用GPU加速的粒子系统全球流场可视化系统设计与实现
空化槽对弹丸水下运动特性的影响
Conduit necrosis following esophagectomy:An up-to-date literature review
基于粒子群优化的桥式起重机模糊PID控制
基于粒子群优化极点配置的空燃比输出反馈控制
UE 4粒子系统与外部数据通信研究
弹丸对预开孔混凝土靶体侵彻的实验研究
基于Matlab的α粒子的散射实验模拟