什么是粒子系统
编辑粒子系统是游戏物理、运动图形和计算机图形学中的一种技术,它使用许多微小的精灵、3D模型或其他图形对象来模拟某些类型的“模糊”现象,否则这些现象很难用传统的渲染技术重现。–通常是高度混沌的系统、自然现象或由化学反应引起的过程。
在1982年的电影《星际迷航II:可汗之怒》中引入了虚构的“创世纪效应”,其他例子包括复制火、爆炸、烟雾、流水(如瀑布)、火花、落叶等现象,落石,云,雾,雪,尘埃,流星尾巴,星星和星系,或抽象的视觉效果,如发光的轨迹,魔法咒语等——这些使用的粒子会快速淡出,然后从效果源重新发射。另一种技术可用于包含许多股线的事物-例如毛皮、头发和草-涉及一次渲染整个粒子的生命周期,然后可以将其作为相关材料的单股线进行绘制和操作。
粒子系统被定义为空间中的一组点,由一组定义行为和外观的规则引导。粒子系统将现象建模为粒子云,使用随机过程来简化动态系统和流体力学的定义,而这些定义很难用仿射变换来表示。
典型实现
编辑粒子系统通常实现以下模块:
- 发射阶段,提供位置并生成新粒子。
- 一个模拟阶段,它更新参数并模拟粒子如何演化。
- 渲染阶段,指定如何渲染粒子。
排放阶段
发射器实现生成率(每单位时间生成多少粒子),粒子的初始速度矢量(它们在创建时发射的方向)。当使用网格对象作为发射器时,初始速度矢量通常设置为垂直于对象的各个面,使粒子看起来直接从每个面“喷射”但可选。
模拟阶段
在模拟阶段,必须创建的新粒子的数量根据生成率和更新间隔计算,并且每个粒子都根据发射器的位置和指定的生成区域在3D空间中的特定位置生成。每个粒子的参数(即速度、颜色等)都根据发射器的参数进行初始化。每次更新时,都会检查所有现有粒子以查看它们是否已超过其寿命,在这种情况下,它们将从模拟中移除。否则,粒子的位置和其他特性会基于物理模拟进行改进,这可以像平移一样简单它们当前的位置,或者像执行物理上精确的轨迹计算一样复杂,其中考虑了外力(重力、摩擦、风等)。通常在场景中执行粒子与指定3D对象之间的碰撞检测以使粒子从环境中的障碍物反弹或以其他方式与障碍物相互作用。粒子之间的碰撞很少使用,因为它们的计算成本很高,并且与大多数模拟在视觉上不相关。
渲染阶段
更新完成后,每个粒子都会被渲染,通常采用带纹理的广告牌四边形(即始终面向观察者的四边形)的形式。然而,这对于游戏来说有时是不必要的;在小分辨率/有限处理能力的环境中,可以将粒子渲染为单个像素。相反,在动态图形中,粒子往往是完整但小规模且易于渲染的3D模型,即使在高分辨率下也能确保保真度。粒子可以在离线渲染中渲染为元球;等值面从粒子元球计算得出的液体非常令人信服。最后,3D网格对象可以“代替”粒子——一场暴风雪可能由一个3D雪花网格组成,该网格被复制和旋转以匹配数千或数百万个粒子的位置。
粒子系统分类
编辑1983年,Reeves只定义了动画点,创建了移动的粒子模拟——火花、雨、火等。在这些实现中,动画的每一帧都包含在其生命周期中特定位置的每个粒子,并且每个粒子占据一个点在空间中的位置。对于消散的火焰或烟雾等效果,每个粒子都有一个淡出时间或固定寿命;诸如暴风雪或降雨之类的影响通常会在粒子离开特定视野时终止粒子的寿命。
1985年,Reeves将该概念扩展为包括同时渲染每个粒子的整个生命周期,结果将粒子转换为显示整体轨迹而不是点的静态材料链。这些股线可用于模拟头发、毛皮、草和类似材料。可以使用动画粒子遵循的相同速度矢量、力场、产卵率和偏转参数来控制股线。此外,可以控制股线的呈现厚度,并且在一些实施方式中可以沿着股线的长度变化。参数的不同组合可以赋予刚度、柔软度、沉重度、刚毛度或任何数量的其他特性。股线也可以使用纹理映射以改变发射器表面上的股线的颜色、长度或其他属性。
1987年,雷诺兹引入了植绒、放牧或学校行为的概念。Boids模型将粒子模拟扩展到包括外部状态交互,包括目标寻找、碰撞避免、群居中和有限感知。
2003年,Müller通过模拟粘度、压力和表面张力将粒子系统扩展到流体学,然后通过使用SmoothedParticleHydrodynamics对离散位置进行插值来渲染表面。
内容由匿名用户提供,本内容不代表vibaike.com立场,内容投诉举报请联系vibaike.com客服。如若转载,请注明出处:https://vibaike.com/132343/