粒子系统在航海应用上的展望*
2013-08-10张新雄李庆杨
张新雄 李庆杨
(海军陆战学院 广州 510430)
1 引言
2009年,特效制作的3D电影《阿凡达》像一枚重磅炸弹,猝不及防地冲击了每个人的眼球。据悉,全球票房收入高达27亿美元,全片有60%的镜头是由CGI(计算机生成图像)拍摄的。不管是动作、表情逼真的人物及其他动物,还是栩栩如生的模拟植物,抑或是惟妙惟肖的自然景象如瀑布、浮云、火焰、极光等,都表现出了高度的真实性,以至于人们在观看过程中忘记了这些影像都是电脑生成的。而这些虚拟影像的生成都毫不例外地应用了基于粒子系统的模拟技术,如图1所示[1]。
图1 粒子系统的广泛应用
粒子系统与以往的方法不同,这种方法主要用于模拟不规则物体。其根本思想就是在模拟和绘制不规则物体的时候,将物体划分为很多微小的粒子图元,并对这些粒子图元进行绘制。粒子系统的方法与以往模拟绘制的方法相比较,体现出了它可以模拟不规则物体的动态性和随机性,增加了模拟的真实感,可以很好地解决不规则物体的模拟。
2 粒子系统研究现状
粒子系统是 William T.Reeves[2]于1983年在《Particle Systems-A Technique for Modeling a Class of Fuzzy Objects》一文中首次提出来的,并成功地模拟了电影《Star Trek 2:The Wrath of Khan》中的一系列特技镜头。1992年,Teng-See Loke等在粒子系统中首次引入牛顿运动定律,成功渲染不同情况下焰火的多种特性;1998年,Matthias等首次将纹理映射技术用于粒子系统中,并从物理学的角度上成功实现云的模拟绘制;2003年,Konthanen等在运用粒子系统时,结合空间细分算法减少系统的计算量,节省系统资源,提高渲染模拟的实时性。
国内的研究起步较晚,直到20世纪末才开始。而且国内主要研究粒子系统在不规则景物应用方面的问题。2000年,张芹等通过粒子系统实现火焰等气态现象的动态实时性模拟。2006年,王继州等则通过火焰链的方式实现火焰的模拟。2008年,高玉建等实现了基于GPU和粒子系统的焰火渲染;2009年,李清畅等则通过粒子系统大规模编排数据和添加音乐特效实现音乐焰火的渲染[3];黄柏刚等利用粒子系统实现船舶导航雷达模拟器中雨雪回波图像的模拟[4]。2012年吴进等在Android平台上利用粒子系统构建游戏引擎[5]。
近年来,随着计算机软硬件技术的发展,困扰人们多年的粒子系统生成图像的真实度和系统实时性之间的矛盾已经得到了很大的改善。于是,人们开始更多地关注快速、方便、有趣、多样化的粒子特效系统及合成影像工具,以便在细节方面得到更加完美的视觉效果,如3DSMAX粒子系统[6~7]等。目前,粒子系统技术被广泛用于大型3D游戏制作、合成电影电视特效、工业辅助设计、建筑园林、室内装饰以及多媒体制作等领域,同时为科技教育、军事技术和科学研究提供专业、全面的解决方案。
3 粒子系统的基本模型
粒子系统的基本原理是采用大量细小粒子图元作为绘制不规则模糊物体的基本元素,每个粒子都一定生命周期,随着时间的推移,系统会不断地产生新粒子,同时粒子所具有的各种属性,即形状、大小、位置、颜色、透明度、运动速度、生命值等不断变化,直到生命周期结束时被系统删除[8~10]。
图2 粒子系统基本模型
粒子系统的基本模型如图2所示,粒子系统主要有五部分组成:产生粒子、更新粒子、绘制粒子、判断粒子是否消亡、删除粒子。各部分的主要作用如下:
1)产生粒子:初始化粒子的属性,如:颜色、位置、速度、加速度、作用力、生命期等。以及增加其它特定属性和删除特定属性。
2)更新粒子:以时间为函数或以其它变量为函数对粒子的属性进行更新,如:根据速度改变位置、根据位置改变生命期等。
3)绘制粒子:根据粒子的位置、颜色等属性绘制粒子。
4)判断粒子是否消亡:根据粒子的生命期来判断粒子是否应该消亡。
Case 2.p=3,q=2.先证明|Q|=2.若否,显然|Q|=4,可取x∈P,o(x)=3与y∈Q,o(y)=4,因G内幂零,则有子群H=〈x〉×〈y2〉诱导的子图P(H)含有K3,3,从而可得幂图不可平面化,矛盾.故|Q|=2,类似Case 1可以证明CP(Q)=1,则有P为初等交换3群且G为Frobenius群.
5)删除粒子:删除到生命期的粒子。
以上的各部分可以根据需要进行改变,以适应不同的需要,如:删除粒子可以不用真的删除粒子,用更改粒子的属性为初始值的方法来删除粒子等。
根据粒子系统的模型可知,生成粒子系统的基本步骤:
1)生成一定数量的新粒子加入系统;
2)赋予每一个新粒子以一定的初始属性;
3)除那些已经超过其生命周期的粒子;
4)根据粒子的动态对粒子进行变换及改变属性;
5)绘制并显示由有生命的粒子组成的图形。
4 在航海应用上的展望
粒子系统的优势在于可以使复杂的物体简单化,这种方法,可以体现出不规则物体的随机性和动态性。这种用粒子系统对物体进行模拟时,既保证了景物的整体效果,又反映了景物的局部特征。当环境发生改变时,粒子系统可以通过粒子自身的运动和改变,从而对整个系统做出调整。这一切说明了粒子系统的运动特性,即它是随着时间的变化而不断变化的一个集合体。也是因为这种特性,使得粒子系统航海应用方面具有独特的优势。
粒子系统是一种广泛应用的模拟方法,概括起来讲,粒子系统在航海方面主要应用于以下三方面,即模拟自然景观等非整体物体、模拟整体物体的表面形态、模拟可形变物体如船体等的动态行为。
4.1 模拟自然景观
在对非整体物体模拟时,粒子系统并不是一个简单的静态系统。随着时间的推移,系统中已有的粒子不断改变形状,不断运动,而且不断有新粒子加入,并有旧粒子消失,利用粒子系统的这种特性构建航海虚拟环境,生成逼真、可控的风浪、雨雪、云雾、烟雾、霞光、船体周围和岛礁周围浪花等,降低航海模拟系统的运算成本,提高航海视景的真实度和实时性;利用粒子系统生成大雾、雨雪天气,构建复杂航行海区,提高航海模拟器的训练效果;利用基于粒子系统的方法提高气象雷达、导航雷达的显示效果。
4.2 模拟整体物体的表面形态
粒子系统还可以应用于物体的表面建模之中,用它建立的表面模型是一种弹性的模型,与一般的表面模型不一样,粒子系统建立的表面模型在不需要人工干预的情况下,可以实现对表面的拆分与扩展。由于粒子的排列十分灵活,在物理形状与拓扑结构上,粒子系统能够建立出比一般的可形变表面模型更加复杂和随意的物理形状。因而,在海上战场模拟方面,利用粒子系统来生成爆炸、碎裂、火炮口焰、导弹尾焰、箔条干扰、灯塔灯柱的夜间信号及植被、森林、群山和岛屿等,使战场环境更加逼真;还可以模拟航船、海上建筑、港口、码头等整体物体。
4.3 模拟可形变物体的动态行为
粒子间有相互作用力存在,粒子还受到重力等外力的作用,运行粒子系统动力学原理,粒子系统可以用来模拟物体的运动过程以及液态物体的流动等行为。运用粒子系统方法对形变物体容积建模时,一般用质量、半径、位置、速度及相互作用力等属性来描述系统中的粒子。尽管粒子的描述比较简单,但由于粒子用于模拟一些复杂的行为,尤其需要模拟一定约束下的形变物体,因此粒子系统对形变物体的模拟也并不是一种十分简单的方法。粒子的运动一般由物理学中牛顿定理来定义。在模型中,主要考虑两种类型的力,粒子间的内部力,包括引力和斥力,以维持粒子间的关系,而力的大小由粒子间的距离来确定;系统外部力,如与障碍物碰撞所产生的力或重力。结合粒子系统和几何模型或者物理模型,可模拟船行波或者舰船航迹[9],研究浅水效应、船体兴波、复杂海区等对船舶航行安全的影响;由于粒子系统的灵活性和可控性,可赋予单个粒子质量、速度及作用力,将其运用于船体碰撞检测和船体结构分析研究也是一个重要方面。
[1]CHEN GANG.Particle System Based Simulation of Special Effect in 3DVirtual Scene[J].Wuhan:2011International Conference on Computer,Electrical,and Systems Sciences,and Engineering.
[2]William T.Reeves.Particle Systems-A Technique for Modeling a Class of Fuzzy Objects[J].Computer Graphics,1983,17(3):359-376.
3 高秀亭.基于粒子系统的火焰和烟花实时模拟技术研究[D.苏州:苏州大学研究生院,2011.
[4]黄柏刚.船舶导航雷达模拟器中雨雪回波图像的研究[D].大连:大连海事大学研究生院,2009.
[5]吴进,刘文浩,谢韬.Android平台粒子系统构建[J].成都:计算机光盘软件与应用,2012(08).
[6]王少伟,陈晓青.影视特效粒子系统研究[J].上海:软件导刊,2012,11(4).
[7]梁忠先.3DSMAX粒子系统初探[J].天津:天津职业院校联合学报,2012:14(5).
[8]杨青.基于粒子系统的动态模拟真实感研究与实现[D.西安:西安电子科技大学,2010.
[9]严芳.粒子系统及其SPH方法应用的研究与实现[D].武汉:武汉理工大学,2006.
[10]张芹,吴慧中,张健.基于粒子系统的建模方法研究[J].计算机科学,2003,30(8).
[11]薛菲,张荣国,陈大川,等.基于粒子系统的雪景模拟算法研究与实现[J].计算机与数字工程,2011(6).
[12]赵欣,李凤霞,战守义.基于粒子系统的舰船航迹仿真[J].计算机工程,2008(08):34(15).