粒子系统综述报告

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

计算机科学与技术学院粒子系统综述报告姓名:学号:指导教师:年月日摘要如何逼真地模拟自然景物一直是图形学中的一个热门研究课题和难点问题。火焰、云烟、滴、雪花等动态自然景物的模拟,在航空航天、影视广告、虚拟场景中有着广泛的应用。然而多数景物的外形是随机变化的,很难用常规的建模方法及模拟技术来描述。因此自然景物的模拟一直以来都是虚拟现实领域研究的热点和重点。随着近年来研究的不断深入,各种自然景物模拟算法不断涌现,模拟结果也越来越具有真实感。其中,粒子系统方法是迄今为止被认为模拟不规则模糊自然景物最为成功的一种生成算法。关键字:图形学;粒子系统;虚拟现实;真实感引言虚拟现实(简称VR),又称灵境技术,是以沉浸感、交互性和构想为基本特征的计算机高级人机界面。现今,从军用到民用,从工业到商业,从自然景观虚拟到人文景观虚拟,虚拟现实技术的应用越来越广[1]。随着应用的不断扩展,在虚拟现实系统的设计与实现中,有一些景观很难用简单的几何图元来表示,这类景观主要是一些离散的或者动态的自然景观和人文景观,例如烟、星星、喷泉和烟花等等[2]。1983年由W.T.Reeves等首次系统地提出了粒子系统方法[3]。此方法被认为是迄今为止模拟不规则模糊物体,最为成功的一种图形生成算法。在计算机虚拟仿真领域,应用粒子系统模拟不规则模糊物体的方法,已经得到了广泛应用。本文通过对粒子系统的阐述、研究现状、建模及仿真以及对模型的优化,有了一个详细地描述,从而使大家对粒子系统的研究现状,有了更为直接的了解,最后通过分析现有粒子系统研究现状的不足,对于粒子系统的进一步研究,提出了自己的看法。1粒子系统的概念及其研究现状1.1什么是粒子系统粒子系统是一种典型的物理建模系统,它是用简单的体素完成复杂运动的建模[4]。粒子系统由大量称为粒子的简单体素构成,每个粒子具有位置、速度、颜色和生命期等属性,这些属性可根据动力学计算和随机过程得到。而一个粒子需要被赋予哪些属性,主要取决于被模拟对象[5]。1.2粒子系统的研究现状(1)随机粒子系统。主要通过可控制的随机过程,控制粒子属性的变化。1983年Reeves首次系统地提出了应用粒子系统,模拟虚拟场景中不规则物体的方法,模拟出烟花绽放的过程,并在电影StarTrek1中绘制了星系爆炸的场面。从那之后,人们对粒子系统使用范围进行了进一步的拓展,使得粒子系统能够拟火焰、烟花[6~7]、烟雾[8~10]、飞机飞行的特效[11]、喷泉,甚至是水中航行的船只的航行轨迹[12~13]。(2)流体粒子系统。粒子的运动轨迹受流体力学的影响。比如,模拟地下煤矿矿井内气流,可以描述矿井发生火灾时火焰的扩散情况[14],类似的还有陶瓷辊道窑内进行陶瓷烧制时火焰轨迹的建模[15~16]。粒子系统也能够对液体进行建模,LiuXue-mei用粒子系统模拟外科手术出血情况[17]。粒子系统甚至能够在高密度、高粘度、高压力、高温度等极端的条件下,模拟出了岩浆流动的情况[18]。(3)方向粒子系统。考虑粒子间的相互影响,粒子除了具有速度和位置等动态属性外,还必须有方向属性。这样的粒子系统,主要模拟织物、可变形物体和刚体等。1987年,Reynolds把粒子系统看成是一组相互影响的粒子组成的,每一个粒子的具体位置,受与其相关粒子的影响。在这个理论基础上OlafEtzmuss通过对连续介质的小改动,得到了耦合粒子系统,这个粒子系统中的粒子是相互关联的,并用以此来模拟变形的物体[19]。BernhardEberhardt,基于耦合粒子系统系统理论,对纺织物进行了建模。同时,Szeliski和Richard提出基于粒子系统的模拟弹性表面的方法,也可以对纺织物进行建模。(4)结构化粒子系统。主要用来模拟具有一定结构的物体或现象。1985年,Reeves发展了粒子系统,他们用“Volumefilling”基本单元,去生成随时间改变形状但又基本保持不变的实体,如随风飘动的花草树叶[20]。袁琪在2007年利用粒子系统虚拟作物器官[21]。RhysGoldstein在生物学医药领域,用粒子系统来模拟神经元末梢,并且取得了很好的效果[22]。法国的EricGalin用粒子系统模拟出吊灯、雕塑品等具有隐性曲面造型的物体。1.3小结自粒子系统概念提出后,该系统受到越来越多的重视,不少研究人员对它进行应用研究,具有代表性的研有:用结构化粒子系统模拟树林和树林中草丛覆盖的地面,用近似概率性算法来解决关于粒子系统渲染时的明暗和可见面问题,用固定粒子数的粒子系统结合分布式行为模型模拟了鸟群的飞行。提出了一种同时适用于可变形物体和固体的表面建模方法——方向粒子系统。并由此产生了许多利用粒子系统来模拟自然景物的方法。2粒子系统的建模与仿真粒子系统是一个动态的模型,粒子在系统中要经过“产生”、“运动”和“消亡”这3个阶段。随着时间的推移,系统中旧的粒子不断消失,新的粒子不断加入。系统中“存活”的粒子,其位置及生命值亦随时间变化而变化,其正常运行的关键,是确定粒子的初始属性、粒子的变化规律和绘制等因素[23]。在粒子生命期的每一刻,都要完成以下5步工作[24]:(1)粒子源产生新粒子,并赋予粒子属性后加入系统中;(2)根据粒子的动态属性,对粒子进行移动和变换,同时更新粒子属性;(3)判断粒子的生命值;(4)删除那些已经超过其生命周期的粒子;(5)绘制并显示由有生命的粒子组成的图形。2.1粒子系统的生成粒子的产生,采用随机过程函数来控制。每一帧产生的粒子数目,直接影响到画面的效果,常使用下面两种方法来进行定义[25]:(1)第fn帧产生新粒子数目NParts(fn)定义为:NPartsf=MeanPartsf+Rand()×VarPartsf(1)其中,Rand是在区间为[-1.0,1.0]上均匀分布的随机函数,MeanPartsf是新产生粒子的平均值;VarPartsf是新产生粒子的方差。(2)为了有效控制粒子的层次细节和绘制效率,还可以根据单位屏幕面积所具有的平均粒子数和方差,来确定进入粒子系统的粒子数,则式(1)可以修改为:NPartsf=(MeanPartssaf+Rand()×VarPartssaf)×ScreenArea(2)其中,MeanPartssaf和VarPartssaf分别表示第f帧每单位屏幕面积上产生粒子数目的平均值和方差,ScreenArea是粒子系统的屏幕面积。在式(2)中,能够有效地避免用大量粒子来模拟在屏幕上投影面积很小的景物,因而大大提高了算法的绘制效率。为了能够使粒子系统在强度上增加或者减少,设计者一般采用线性函数公式,使得每一时刻每帧中平均粒子的数量不同MeanPartsf=InitialMeanParts+DeltaMeanParts×(f-f0)(3)或者MeanPartsf=InitialMeanPartssa+DeltaMeanPartssa×(f-f0)(4)其中,f是现在的帧数;f0是粒子系统中最初的帧数;InitialMeanParts是粒子系统最初帧中的平均粒子数;DeltaMeanPartssa是粒子数的变化率。因而,为了控制粒子系统中粒子的产生,设计者只要指f0或者InitialMeanParts,DeltaMeanParts,Varparts或者InitialMeanPartssa,DeltaMeanPar-tssa,Varpartssa的参数即可。2.2粒子的属性任何新产生的粒子,都必须赋予它们一定的初始属性。粒子的初始属性,可以进行如下描述:(1)初始位置;(2)初始速度(速率和方向);(3)初始大小;(4)初始颜色;(5)初始透明度;(6)形状;(7)生命期。2.3粒子的运动粒子一旦产生,并具有一定的初始属性之后,它们便开始运动。粒子需要在初始运动属性的基础上,推导出其他时刻的运动属性。2.4粒子的绘制和渲染[26]粒子绘制的技术主要有(1)点粒子的绘制;(2)面粒子的绘制;(3)线性粒子的绘制;(4)随机形状粒子的绘制。实现粒子渲染的手段,主要采用光照、阴影、浓淡以及消隐处理技术。有些情况下,粒子被认为是光源,此时可以忽略消隐,简化浓淡处理,只以粒子的灰度或者颜色,来加亮相应的象素。2.5粒子的死亡当粒子一旦产生之后,就被赋予了生存期,一般都是用帧来计算粒子的生存期,其随着粒子的运动而递减。当递减到零时,粒子“死亡”。此时,当从系统中将该“死亡”粒子删除。在实际的应用中,也可以采用其他的方式来度量粒子的死亡。例如,当粒子的颜色和透明度低于系统设定值,或者粒子的运动超出了规定的区域,这些情形都可以根据实际的要求,认为粒子已经死亡[27]。2.6粒子系统的实现方法随着图像处理的硬件和软件的发展,实现粒子系统的技术也获得了进一步的发展,主要反映在处理器、开发平台、渲染软件和数据存储等方面。(1)影响粒子系统实时性能的瓶颈,就CPU的通讯以及CPU的并行处理能力,而在最新计算机系统中,由于实现了CPU和GPU的合理分工,数据和指令存储交换的场所也由系统内存,扩展至GPU显存,同时数据交换总线发展到PCIExpress总线,并利用GPU的多通道处理性能,可以很方便地实现大量的并行计算,这使得计算机系统的实时处理能力,大幅度提高[28]。(2)粒子系统进行开发的通用平台是VisualStudio[29~30],也有专门的仿真可视化平台,比如VegaPrime、3DStudioMax[31]。(3)粒子系统中的粒子渲染的工具很多,高速OpenGL渲染引擎,具有相当的灵活性和可扩展性[32~33],能够满足在普通PC机上模拟不规则的自然景物的需求。其次是DirectDraw,DirectDraw允许用户直接访问图形硬件,管理用于显示的内存,提供高速图形和页面切换动画。(4)吴继承设计出粒子系统的API,采用合理的数据结构,设计了一套高效的粒子生成、管理方法,并采用高速OpenGL渲染引擎,使用了粒子组管理粒子,使之能够满足在普通PC机上模拟大数据量动态场景的需求[34]。3粒子系统的优化技术粒子系统涉及的计算量相当庞大和复杂,所以粒子系统优化研究也越来越受重视,因为这样可以节省计算资源,提高计算效率。一般来说有以下几种优化的技术:3.1绘制效率优化[35]粒子系统运行的最终结果,是在屏幕上绘制每个粒子形态这个过程,需要一定的时间,影响了系统的实时性。绘制效率优化,就是采用特定方法,减少粒子绘制时间,进而提高速度。优化包括系统级和代码级两种:系统级主要采用高速缓存保存编译过的绘图代码,使用时不需再次编译;代码级主要基于人眼分辨率限制,少绘制或不绘制人眼不敏感或看不到的区域。绘制效率优绘制效率的优化包括为:(1)显示列表;(2)公告板技术;(3)几何形体优化;(4)多级粒子系统。3.2计算复杂性优化[36]粒子系统运行过程中需要大量计算,如碰撞检测、速度调整、内存分配、算术运算、循环判断等。这些计算消耗系统资源,间接表示时间复杂度大小,对系统实时性影响比较大,处理不好将严重影响系统速度。在计算复杂度的优化方面主要有:(1)碰撞检测与处理优化;(2)存储方式优化;(3)运动过程优化;(4)线性表;(5)局部力场。3.3粒子数量的优化粒子数量优化,就是在不影响系统真实感的前提下,尽可能地减少粒子数量,减少空间复杂度。粒子数量的优化我们主要采用的技术包括:(1)结构化粒子;(2)LOD技术;(3)伪粒子系统。4总结粒子系统可以在各种各样的环境下,对很多模糊的或者是隐性曲面、弹性曲面的物体,进行建模仿真。目前基于粒子系统仿真研究,主要局限于计算机图形的模拟,虽然在粒子仿真的图形中加入了重力和风力的作用,但这种外力并不是使用传统实验方法计算出来的,而是为了烘托模拟出来的图像效果,是用外力的。另外,由于对自然现象等大规模场景进行实时仿真渲染,需要高性能设备支撑,因此在实际仿真时,往往以牺牲场景的真实感作为代价。为了使基于粒子系统的仿真,在更大的范围内进行应用,在粒子系统建模时,考虑加入一些特定环境下的空气动力学的影响因素,结合风力和重力的专业计算数

1 / 11
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功