基于粒子系统的飞行特效模拟

2011-10-20 12:40陈俊丽徐蔚峰万旺根
关键词:粒子系统视点生存期

陈俊丽, 徐蔚峰, 黄 炳, 万旺根

(上海大学通信与信息工程学院,上海 200072)

基于粒子系统的飞行特效模拟

陈俊丽, 徐蔚峰, 黄 炳, 万旺根

(上海大学通信与信息工程学院,上海 200072)

基于粒子系统理论,提出飞机尾焰建模方法,采用纹理映射技术、多细节层次 (levelsof detail,LOD)技术对尾焰粒子进行实时渲染,加快了渲染速度,增强了真实感.仿真结果表明,生成的飞机尾焰效果真实,具有良好的实时性,可在普通的 PC机上流畅运行,同时给出了雨和雪的特效仿真.

粒子系统;纹理映射技术;实时渲染;多细节层次技术

在虚拟飞行中,存在飞机飞行产生的尾焰,以及雨、雪等复杂的自然景象,这些景象可显著增强虚拟场景的“沉浸感”.在视景仿真中,可将尾焰、烟和雨、雪等称为特殊效果 (特效).由于特效具有不规则性和动态随机性,因此,对特效进行实时逼真的模拟是目前计算机仿真技术领域的一个难点.

近年来,国内外研究人员根据不同的仿真需求提出了一系列特效的仿真与渲染方法.按照建模方式可分为基于个体生长的模型和基于物理的模型[1-2].基于个体生长的建模方法利用视觉形态特征获得对象的视觉形状,而不需要模拟对象生成的真实物理过程,常用的方法有体过程法[3]、分形法[4-5]和粒子系统法[6-8].体过程法采用噪声 (如 Perlin噪声)函数来模拟特效的复杂性,并且对场景中的每一个元素采用相同的渲染技术,计算量大,难以用来产生实时动画;分形法采用迭代或递归的方法结合变形球进行个体生长计算,适合于生成静态的精细图形.相对前面 2种方法,粒子系统的方法直接模拟读写内的粒子,并赋予粒子大小、位置及颜色等属性,观念直接,较容易控制对象的形状,适合于实时飞行视景仿真.此外,基于物理的建模方法是通过仿真云的气象学生成过程来建立对象的模型,由于需要过大的计算量而不适用于目前的图像学仿真.

传统的飞机尾焰模拟方法是将二维图像的颜色值转化成纹理数组,通过物体空间坐标和二维纹理空间坐标之间的变换,将纹理元素映射到飞机尾部三维圆锥或圆台表面,从而形成尾焰.由于映射是二维的,因此,视点的变化、飞行路线和距离的变化都会使得这种方法难以对尾焰的大小、形态作出准确的描述,从而极大地影响了画面的真实感.本工作采用粒子系统来生成飞机尾焰,研究了尾焰粒子的初始化、更新和消亡,利用纹理映射技术、多细节层次(levels of detail,LOD)技术进行渲染,从而增强了生成尾焰的真实感,并具有良好的实时性.

1 粒子系统

粒子系统是用于不规则模糊物体建模及图像生成的一种方法,其基本思想是把模糊物体定义为由成千上万个运动的、不规则的、随机分布的粒子组成的粒子集.每个粒子均有一定的生存期及其他属性(如颜色、形状、大小、速度等).粒子在不断运动的过程中改变形状,从而表现出景物的总体形态和特征的动态变化.粒子系统充分体现了模糊物体的动态性和随机性,可以很好地模拟出雨、雪、云、飞机和导弹尾焰、爆炸烟雾等模糊对象.利用粒子系统进行物体模拟的流程如图 1所示.

图 1 粒子系统流程图Fig.1 Flow char t of par ticle system

2 基于粒子系统的飞机尾焰模拟算法

2.1 飞机尾焰粒子属性的初始化

粒子系统中的每一个粒子都具有一系列不同的属性,包括粒子的尺寸、位置、运动速度、寿命、颜色、生存期等.所有这些属性都是时间 t的函数,可通过粒子状态随时间变化的过程来表现动态的尾焰.

尾焰粒子的初始化工作是在粒子发射器中完成的.粒子发射器负责生成和发射粒子,控制粒子的数量和粒子的初始化.本研究将粒子发射器设计成一个半径为 R的圆,该圆的直径和飞机的排气口直径相同.各个粒子的初始位置均匀排列在该圆周上,且沿着一定的角度θ向外散射,形成一个圆台的形状.考虑尾焰的真实性,取θ=10°,如图 2所示.

图 2 喷射尾焰的圆台形状示意图Fig.2 Schematic d iagram of the round table shape of the jet f ire

粒子发射器产生粒子后,要指定每个新产生的粒子的属性.粒子的属性初始化主要包含初始位置和速度、初始颜色、生存期.

2.1.1 初始位置和速度

假设圆台的上底圆周的中心坐标为O(x,y,z),底圆周面与 xz面平行,则第 i个粒子的初始位置P0(xi,yi,zi)可按下式计算:

式中,α=rand(·)×2π,rand(·)为[-1,1]上均匀分布的随机函数.

尾焰粒子的初始速度是具有方向和大小的矢量,随时间和空间随机变化.设已知尾焰的平均速度为 Vm,速度变化为ΔV,则粒子的初始速度 V为

V=Vm+rand(·) ×ΔV. (2)

2.1.2 初始颜色和亮度

粒子的初始颜色分量包括粒子的三元色 C(R,G,B),粒子的初始颜色值为

C0(R,G,B)=Cm(R,G,B)+rand(·) ×Cvar(R,G,B), (3)

式中,Cm(R,G,B)为尾焰颜色的平均值,Cvar(R,G,B)为尾焰颜色方差.

尾焰粒子的亮度可由透明度β来表示.β是一个从 0到 1变化的实数,0表示最暗,1表示最亮.粒子的初始亮度为最亮,即β0=1.

2.1.3 生存期

火焰粒子的生存期表征了其在屏幕上停留的时间,用帧数表示.速度一定时,生存期决定了粒子上升的最大高度.若尾焰的平均长度为 H0,粒子的平均速度为 V,粒子的平均生存期为

则粒子的生存期为

式中,Tvar为粒子生存期方差.

2.2 尾焰粒子的属性更新

粒子在三维空间中不断运动,其属性也同时发生变化,粒子属性可表示为

Fj+1=Fj+ΔF ×Δt, (6)

式中,Δt为第 j+1帧与第 j帧的时间间隔,Fj为粒子 j的当前属性值,ΔF为对应属性参数的变化率,

式中,Fend为粒子属性的终值,可动态调整该属性值.

粒子的位置、速度、颜色、大小、生存期等属性都可以根据式 (6)和 (7)来更新.例如,第 j+1帧的粒子的速度和颜色的属性值分别为

Vj+1=Vj+ΔV ×Δt, (8)

Cj+1(R,G,B)=Cj(R,G,B)+ΔC(R,G,B)×Δt. (9)

2.3 尾焰粒子的消亡

随着时间的推移,粒子的当前属性值随之变化,当粒子生存期结束,粒子将消亡.由于系统不停地对粒子状态进行更新,因此,粒子的消亡和产生将会不断地删除和申请内存空间,从而容易造成内存碎片和浪费.本研究采取以下方式来解决这个问题:当一个粒子消亡后,不是马上删除粒子所在的内存,而是将该粒子重新初始化,并从粒子发射器中发射出来,从而省去了删除粒子和重新申请粒子内存的时间,提高了系统的效率.

3 尾焰特效的渲染优化

本研究采用 LOD技术、纹理映射技术与Billboard技术来加快实时显示速度,从而提高逼真度.

3.1 纹理映射与 Billboard技术

纹理映射技术本质上是通过用图像来替代物体模型中的可模拟或不可模拟细节,来提高模拟逼真度和显示速度.纹理映射的原理如图 3所示[9],其中E(xD,yD)代表屏幕空间的投影点,P(x,y,z)代表物体上的点,q(u,v)代表相应的纹理像素.通过屏幕空间、物体空间和纹理空间之间的一系列的变换过程,最终在屏幕上形成三维质感.Billboard技术采用一个四边形来表示一个物体,四边形的 4个顶点都有自身的纹理坐标并赋予其所代表物体的纹理,四边形图像始终面对视点[10].当视点旋转时,四边形的法线向量跟随视点进行旋转,从观察者的角度看,就仿佛只看到一个物体.每个粒子作为一个Billboard,若粒子的中心位置为点 O,视点的位置为点 C,则 Billboard的法向量,其中 OC为两点形成的向量,dOC为两点之间的距离.Billboard技术用简单的多边形来代替一些复杂的物体,大大加快了建模和渲染速度.

图 3 纹理映射示意图Fig.3 Texturemapp ing

3.2 LOD实时性优化

如果对飞机的尾焰采用相同的粒子数量来渲染,将无法保证实时性.本研究采用 LOD技术来加速尾焰渲染,即当视点较近时,会产生较多的粒子,视点较远时,产生较少的粒子.设粒子数量 n与视点距离 d的关系为 n=k×d-1,其中 k为常数.由于视点较远,人眼分辨不出,从而减少了计算机的处理时间,提高了系统的绘制效率.

4 仿真结果

本仿真在 VC++环境下,利用 Irrlicht可视化平台,对飞机飞行时产生的尾焰进行了模拟.图 4~图 6为采用纹理映射技术,不同粒子数量下的尾焰模拟情况.由图可见,粒子数为 300和粒子数为 150时的尾焰都具有较好的逼真度,而粒子数为 60时的模拟效果则较差.兼顾到逼真度和实时性的要求,当视点较近时,尾焰粒子可设定为 150,而视点较远时设定为 60.此时图形生成的帧速率达到了 156帧 /s,大大超过飞行视景仿真所要求的 60帧 /s.而图 7为没有采用纹理映射技术,粒子数为 300时得到的尾焰模拟情况,模拟出的尾焰轮廓模糊,存在明显的锯齿现象.

图 4 粒子数为 60的尾焰(采用纹理映射)Fig.4 Jet f ire w ith 60 par ticles(w ith texturemapp ing)

图 5 粒子数为 150的尾焰(采用纹理映射)Fig.5 Jet f ire w ith 150 par ticles(w ith texturemapp ing)

图 6 粒子数为 300的尾焰(采用纹理映射)Fig.6 Jet f ire w ith 300 par ticles(w ith texturemapp ing)

飞行视景系统中,特效的仿真内容不仅仅局限于飞机尾焰,本研究对雨和雪的特效也进行了仿真,效果如图 8和图 9所示.

图 7 粒子数为 300的尾焰(无纹理映射)Fig.7 Jet f ire w ith 300 par ticles(w ithout texturemapp ing)

图 8 下雨模拟效果图Fig.8 Simulation result of ra in

图 9 下雪模拟效果图Fig.9 Simulation result of snow

5 结 束 语

在飞行视景系统中,特效的实现是体现仿真逼真度的一个重要指标.本研究从模拟的逼真度与系统的实时性出发,提出了基于粒子系统的飞机尾焰的模拟方法.仿真结果表明,该算法能够很好地模拟飞机尾焰效果,具有很好的实时性.

[1] EBERTD S.Advanced modeling techniques for computergraphics[J].ACM Computing Surveys,1996,28(1):153-156.

[2] NGUYEN D Q,FEDKIW R,JENSEN H W.Physically based modeling and animation of fire [J]. ACM Transactions on Graphics,2002,21(3):721-728.

[3] L IAO H S,HOT C,CHUANG J H,et al.Fast rendering of dynamic clouds[J].Computers&Graphics,2005,29(1):29-40.

[4] 石贱弟,姜昱明.基于分形几何的动态云模拟[J].计算机仿真,2006,23(4):197-200.

[5] 黄天云,张传武.分形插值算法在分形自然景物模拟中的应用 [J].计算机工程与设计,2007,28(16):3994-3997.

[6] ANNA P C,OSCAR R,M IGUEL C.Multiresolution techniquesfor rain rendering in virtual environments[C]∥International Symposium on Computer and Information Sciences.2008:1-4.

[7] ZHUO N W,RAO Y B.Real time dense smoke simulation based particle system [C]∥ International Symposium on Intelligent Information Technology Application Workshops.2008:809-813.

[8] 李清畅,杨高波,王小静.基于粒子系统的焰火建模及其算法仿真 [J].系统仿真学报,2009,21(8):2179-2184.

[9] 马登武,叶文.虚拟现实技术及其在飞行仿真中的应用[M].北京:清华大学出版社,2005:76-176.

[10] 刘晓东,熊海桥.利用 Billboard实现虚拟职务集群生长显示[J].计算机工程,2003,23(4):197-200.

我校三种科技期刊再获上海市科技期刊优秀奖

上海大学期刊社捷报频传,在日前结束的上海市科技期刊质量评比中,三种科技期刊《上海大学学报(自然科学版)》、《应用数学和力学 (英文版)》、《上海大学学报 (英文版)》同时获得上海市科技期刊审读优秀奖.

据悉,本次科技期刊质量评优工作长达 4个月 (2010年 11月—2011年 2月),上海市 360多种科技期刊中有 250种期刊参加评比,占全市科技期刊总数的 69%.评比采取同行专家审读的办法,审读项目为政治标准、学术 (技术)标准、编辑标准、出版标准,经过“统一标准、分工检查、交流复查、汇总检查”等评比程序,最后遴选出总体评定为“优”的期刊 60种,占参加评比期刊总数的 24%.

近年来,我校科技期刊在参加全国和上海市的期刊质量评比中屡创佳绩.2010年除上述三种科技期刊蝉联第三届中国高校精品、优秀、特色科技期刊奖外,我社《自然杂志》获得中国高校优秀科技期刊奖.以上成绩的获得,将激励着上大“期刊人”继续奋发努力,为进一步提高上大主办期刊的质量和社会影响力,作出我们应有的贡献.

(上海大学期刊社)

Simulation of Special Flight Effects Based on Par ticle System

CHEN Jun-li, XU Wei-feng, HUANGBing, WAN Wang-gen
(School of Communication and Information Engineering,ShanghaiUniversity,Shanghai200072,China)

Thispaper studies simulation of jet fire based on the particle system.Texture mapping and levelsof detail(LOD)techniques are used to enhance the operation speed.The result show s that visual effect of jet fire is true to life.It can meet the needs of real time animation on ordinary PCs.Simulation of rain and snow is also presented.

particle system;texturemapping;real time rendering;levelsof detail(LOD)

TP 391.9

A

1007-2861(2011)02-0138-05

10.3969/j.issn.1007-2861.2011.02.006

2009-09-17

上海市教委重点学科建设资助项目(J50104);国家高技术研究发展计划 (863计划)资助项目 (2007AA01Z319);上海市大学生创新活动计划资助项目(CXSJ08-024)

陈俊丽 (1972~),女,副教授,博士,研究方向为多媒体信息处理.E-mail:jlchen@staff.shu.edu.cn

(编辑:赵 宇 )

猜你喜欢
粒子系统视点生存期
利用GPU加速的粒子系统全球流场可视化系统设计与实现
UE 4粒子系统与外部数据通信研究
鼻咽癌患者长期生存期的危险因素分析
胃癌术后患者营养状况及生存期对生存质量的影响
视点
术中淋巴结清扫个数对胃癌3年总生存期的影响
让你每天一元钱,物超所值——《今日视点—2014精萃》序
两会视点
健脾散结法联合化疗对56例大肠癌Ⅲ、Ⅳ期患者生存期的影响
基于粒子系统的建模与仿真综述