7-粒子系统与动态模糊自然景物模拟

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

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

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

资源描述

苏小红哈尔滨工业大学计算机科学与技术学院哈尔滨工业大学计算机学院苏小红2粒子系统(1/34)ParticleSystemW.T.Reeves1983年提出模拟不规则模糊物体的最重要、最成功的一种图形生成算法最初引入是为了模拟火焰跳动的火焰被看作是一个喷出许多粒子的火山1985年,Reeves和Blau进一步发展了粒子系统并维妙维肖的模拟了小草随风摇曳的景象哈尔滨工业大学计算机学院苏小红3粒子系统(2/34)应用动态模糊自然景物模拟擅长描述不规则、结构随时间而变化的对象,表现不规则物体的随机动态特性自然现象,密集场景,真实的物理过程如跳动的火焰、烟雾、下雨、行云、远处随风摇曳的树林和草丛等电视电影的特技制作已成功地应用于著名动画软件Alias|Wavefront、Softimage中主要优点是数据库放大的功能Reeves声称用三个基本的描述,可生成由百万个粒子构成的森林景色哈尔滨工业大学计算机学院苏小红4粒子系统(3/34)基本思想造型和动画是一个有机的整体单个随时间变化的粒子(Particle)作为景物造型的基本元素景物被定义为由成千上万个不规则的、随机分布的粒子组成由一组粒子构成的系统每个粒子有一个生命周期包括出生、成长、死亡等几个阶段,不断有新的粒子加入,并有旧的粒子消失每个粒子都有一组随机取值的属性初始位置、速度、运动方向、初始大小、形状、颜色、透明度等本质是随机模型采用随机过程的方法,实现粒子在“出生”、“生长”、“死亡”三个阶段的不确定性哈尔滨工业大学计算机学院苏小红6粒子系统(5/34)控制粒子的生成通过随机过程来控制通过控制每一帧(每个时间间隔内)新增的粒子数和死亡的粒子数,来控制粒子系统中粒子的数量该值将直接影响要模拟对象的密度一般方法先确定每个粒子的变化范围变化范围由给定的平均期望值和最大方差来确定然后在该范围内随机地确定它的值哈尔滨工业大学计算机学院苏小红7粒子系统(6/34)控制每帧的粒子数的两种方法1.通过指定每帧画面新粒子平均数MeanParticles以及最大变化范围VarParticles控制粒子数,第j帧中生成的粒子数2.新产生的粒子数取决于物体的屏幕尺寸。通过指定屏幕窗口单位面积上的新粒子平均数MeanParticles以及最大变化范围VarParticles,根据物体覆盖的屏幕尺寸WindowArea当前窗口中需要生成的粒子f是当前帧,f0是粒子系统开始的第一帧,InitialMeanParticles指第一帧粒子的平均数,DeltaMeanParticles是相应的变化率esVarParticlrandlesMeanparticesNumParticlj()WindowAreaesVarParticlrandlesMeanparticesNumParticlW)()()((0ffarticlesDeltaMeanpnparticlesInitialMealesMeanpartic哈尔滨工业大学计算机学院苏小红8粒子系统(7/34)指定粒子的属性在自然景观模拟中,粒子的各个属性取值必须满足待描述自然现象的物理特征粒子的基本属性包括:(1)初始位置;〔2)初始运动速度、加速度和方向;(3)初始颜色;(4)初始透明度;〔5)初始形状大小;(6)生命周期。哈尔滨工业大学计算机学院苏小红9粒子系统(8/34)粒子的运动与变化粒子的运动由一定的规则控制,可与任何描述物体运动和特征的模型结合例如Newton运动定律在生长过程中,粒子的属性被随机地改变粒子的大小和形状随时间变化在不同的阶段粒子具有不同的形态和属性(位置和速度)粒子形状可以是小球、椭球、立方体或其它形状其它性质如粒子透明度、颜色和移动等都随机地变化粒子系统(9/34)粒子的消失当粒子某一属性达到其制定的阈值时该粒子将从粒子系统中消失同时释放其占有的资源粒子系统(10/34)雨景模拟不考虑风力场的作用和复杂物理因素的影响在运动过程中,每个雨点粒子的速度保持均匀或保持固定加速度采用位移映射技术采用位移映射图或者移位绘制器来描述曲面的几何细节仅在绘制时,几何细节才会被添加可自适应地根据具体位置选择可见几何细节的精细程度,以减小场景绘制的几何复杂度粒子系统(11/34)雨景模拟1.粒子数量的控制每一帧生成的新粒子数量基本保持稳定,或有很小的随机变化常量N0表示每一帧生成的基本粒子数2.粒子的基本形态通过位移映射技术将雨点纹理图像映射到特定的粒子区间内esVarParticlrandNesNumParticlj()0粒子系统(12/34)雨景模拟3.雨点粒子的数据结构4.雨点粒子的运动模型预设一个有限空间,雨滴从一个有限的高度开始匀速(或匀加速度)降落,到达某一高度(高度阈值)后雨滴粒子的生命周期结束structRainParticle{floatlifeCycle;//粒子的生命周期floatvelocity;//粒子运动的速度,只考虑垂直速度intx,y,z;//粒子位置};粒子系统(13/34)雨景模拟5.算法描述ForeachnewframeStep1:生成一定数量的新粒子,对各个属性赋初值;Step2:根据雨点粒子的运动规律,更新场景中所有粒子的速度、位置和生命周期;Step3:在每个新的位置绘制基本图元,并进行位移映射;Step4:删除已经死亡的粒子,释放其占用的资源。End(a)N0=100(b)N0=1000粒子系统(14/34)雪景模拟不仅考虑降雪过程的模拟还模拟积雪的效果考虑风力场的作用在运动过程中,每个雪花粒子以均匀速度或保持固定加速度向下降落,同时保持匀速的旋转粒子系统(15/34)雪景模拟1.粒子数量的控制每一帧生成的新粒子数量基本保持稳定,或有很小的随机变化常量N0表示每一帧生成的基本粒子数2.粒子的基本形态通过位移映射技术随机将任意纹理图像映射到特定的雪花粒子区间内esVarParticlrandNesNumParticlj()0粒子系统(16/34)雪景模拟3.雪花粒子的数据结构4.雪花粒子的运动模型预设一个有限空间,雪花从一个有限的高度开始匀速(或匀加速度)降落,同时保持一定速度的旋转,到达某一高度(高度阈值)后雪花粒子的生命周期结束structSnowarticle{floatlifeCycle;//粒子的生命周期floatx,y,z;//粒子位置floatxrot,yrot,zrot;//粒子的旋转角度floatDropSpeed;//粒子的降落速度floatAngleSpeed;//粒子的旋转速度intTextureIndex;//粒子对应的纹理索引};粒子系统(17/34)雪景模拟5.算法描述ForeachnewframeStep1:生成一定数量的新粒子,对各个属性赋初值;Step2:根据雪花粒子的运动规律,更新场景中所有粒子的速度、位置和生命周期;Step3:在每个新的位置绘制基本图元,并进行位移映射;Step4:删除已经死亡的粒子,释放其占用的资源。End粒子系统(18/34)雪景模拟粒子系统(19/34)喷泉模拟1.喷泉粒子的运动分析近似物理模型喷泉水柱初始在竖直方向做向上的减速运动在重力及空气阻力的合力作用下粒子上升到最高点,速度为零而后类自由落体运动合成后粒子运动轨迹类似于抛物线喷泉粒子运动轨迹粒子系统(20/34)喷泉模拟2.喷泉粒子的属性设置粒子速度粒子位置粒子类型(判断是否应该消亡)淡化值(刻画朦胧的雾化效果)在运动过程中随着时间推移,粒子不断淡化,直至消失粒子生命期判断粒子是否应该消亡不仅仅由其生命期决定在未到达其生命期极限时,还要时刻检测粒子当前状态是否达到淡化阈值如果满足了淡化阈值的限制,同样将粒子从系统中删除粒子系统(21/34)喷泉模拟3.喷泉粒子属性的更新假设喷泉水柱由系统中坐标原点发出粒子的发射源也定义在坐标原点每一时刻粒子从粒子源不断发射设定新发射的粒子具有水平方向的速度当喷泉发射多股水柱时,其俯视示意图为喷泉发射方向示意图N/2角度α是每股喷泉间隔角度,在计算喷泉速度和方向变化时要用到。在这里可取平均值,即如果喷泉柱数为N,则粒子系统(22/34)喷泉模拟3.喷泉粒子属性的更新粒子速度计算公式粒子位置坐标计算公式mftvvtmfgvvmftvvzzyyxx///tvPPtvPPtvPPzzzyyyxxxg=9.8,重力加速度f表示阻力阻力与粒子速度方向相反上升过程中阻力与重力方向相同,f0下降过程中阻力与重力方向相反,f0粒子系统(23/34)喷泉模拟3.喷泉粒子属性的更新如果不考虑阻力,粒子在x和z方向作匀速直线运动,在竖直方向做加速运动,加速度仅仅是重力加速度时速度和位置坐标计算公式zzyyxxvvtgvvvvtvPgtvPtvPzzyyxx2021粒子系统(24/34)喷泉模拟4.喷泉粒子的显示将系统中满足显示条件的粒子绘制出来如果当前喷泉粒子生命期大于零,则此显示粒子可能需要,否则直接从粒子链表中删除如果当前粒子生命期大于零,但是淡化值达到了规定的阈值,那么说明此粒子已经淡化到不可见,同样可以不显示,也从系统中删除只显示还具有生命期且淡化值仍能保证其可见的粒子粒子系统(25/34)喷泉模拟喷泉粒子形状点元粒子在当前时刻粒子的位置处以一定的颜色绘制出点,粒子位置变化,点的显示位置也跟随变化,体现出粒子运动轨迹,粒子淡化效果在颜色中体现多边形粒子以当前时刻粒子位置作为中心绘制多边形,并将能体现水花效果的纹理映射到多边形上,粒子位置变化,多边形位置也跟随变化,体现出粒子运动轨迹球体粒子以粒子位置作为球心,以最接近水珠的颜色(如青色),进行小球体的绘制,粒子淡化效果在颜色中体现线元粒子计算出当前粒子的位置,然后根据粒子运动公式得到下一时刻粒子的位置,两点之间连线得到的线段作为粒子轨迹图元,线元长度为两位置之间距离,线元沿着粒子运动轨迹进行移动用线元来表示喷泉粒子其实是将喷泉粒子小距离的运动轨迹变化来体现全部的运动,这样进行渲染的粒子运动看起来更加具有连续性粒子系统(26/34)喷泉模拟粒子系统(27/34)瀑布模拟1.瀑布粒子运动分析近似物理模型水流以随机确定的初速度从瀑布源头开始做向下的抛物线运动粒子在下落过程中,或者因障碍物的撞击改变运动方向,或者因生命期及淡化值达到规定阈值而消亡瀑布粒子运动轨迹粒子系统(28/34)瀑布模拟2.瀑布粒子属性设置及更新粒子速度粒子位置粒子类型(判断是否应该消亡)淡化值(刻画朦胧的雾化效果)粒子生命期具体实现时瀑布粒子的结构体与喷泉粒子很相似,只是由于规模不同,在粒子结构设计上略有不同粒子系统(29/34)瀑布模拟在粒子结构定义中设置了一个指向“child”的指针:瀑布源头在同一时刻生成大量粒子,这些粒子组成一个链表链表中的每一个粒子又是另一个链表的头,在下一时刻粒子在重力场的作用下发生位移与此同时粒子源又在生成新的粒子,新粒子插入为链表头不断循环,直到某粒子因生命周期结束被删除这样,瀑布粒子就随着时间的推移形成了一个二维网格粒子系统(30/34)瀑布模拟瀑布粒子形状线元作为粒子图元,线元长度为粒子在一个时间步长内的位移线元长度由粒子在两个时间点的位置决定,沿着粒子的运动轨迹前进,可以减少部分计算开销粒子系统(31/34)气态流体模拟云彩(a)层云(b)卷云(c)积云粒子系统(32/34)气态流体模拟烟雾(a)有源烟雾(b)无源烟雾粒子系统(33/34)气态流体模拟火焰(a)有源火焰(b)无源火焰导弹尾焰、尾迹模拟粒子系

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

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

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

×
保存成功