跳转到内容

粒子系统

维基百科,自由的百科全书

这是本页的一个历史版本,由Sterrys留言 | 贡献2006年9月20日 (三) 08:06 典型实现编辑。这可能和当前版本存在着巨大的差异。

粒子系统en:particle system)表示三维计算机图形学中模拟一些特定的模糊现象,而这些现象用其它传统的渲染技术难以实现的真实感的 game physics。经常使用粒子系统模拟的现象有火、爆炸、烟、水流、火花、落叶、云、雾、雪、尘、流星尾迹或者象 glowy trails abstract 视觉效果等等。

用于渲染火的粒子系统
用来渲染星系的粒子系统
abstract 粒子尾迹

典型实现

通常粒子系统在三维空间中的位置与运动是由发射器控制的。发射器主要由一组粒子行为参数以及在三维空间中的位置所表示。粒子行为参数可以包括粒子生成速度(即单位时间粒子生成的数目)、粒子初始速度向量(例如什么时候向什么方向运动)、粒子寿命(经过多长时间粒子湮灭)、粒子颜色、在粒子生命周期中的变化以及其它参数等等。使用大概值而不是绝对值的模糊参数占据全部或者绝大部分是很正常的,一些参数定义了中心值以及允许的变化。

典型的粒子系统更新循环可以划分为两个不同的阶段:参数更新/模拟阶段以及渲染阶段。每个循环执行每一帧动画。

模拟阶段

模拟阶段,根据生成速度以及更新间隔计算新粒子的数目,每个粒子根据发射器的位置及给定的生成区域在特定的三维空间位置生成,并且根据发射器的参数初始化每个粒子的速度、颜色、生命周期等等参数。然后检查每个粒子是否已经超出了生命周期,一旦超出就将这些粒子剔出模拟过程,否则就根据物理模拟更改粒子的位置与特性,这些物理模拟可能象将速度加到当前位置或者调整速度抵消摩擦这样简单,也可能象将外力考虑进取计算正确的物理抛射轨迹那样复杂。 Also it is common to perform some sort of collision checking with specified 3D objects in order to make the particles bounce off obstacles in the environment. However particle-particle collisions are rarely used, as they are computationally expensive and not really useful for most of the simulations.

A particle system has its own rules that are applied to every particle. Often these rules involve interpolating values over the lifetime of a particle. For example, many systems have particles fade out to nothingness by interpolating the particle's alpha value (opacity) during the lifetime of the particle.

Rendering stage

After the update is complete, each particle is rendered usually in the form of a textured billboarded quad (i.e. a quadrilateral that is always facing the viewer). However, this is not necessary, the particle may be rendered as just a single pixel in small resolution/limited processing power environments, or even as a metaball in off-line rendering (isosurfaces computed from particle-metaballs make quite convincing liquid surfaces). Finally 3D meshes can also be used to render the particles.

对用户友好的粒子系统工具

在许多三维建模及渲染包内部就可以创建、修改粒子系统,如 3D Studio MaxMaya 以及 Blender 等。这些编辑程序使艺术家能够立即看到他们设定的特性或者规则下粒子系统的表现,另外还有一些插件能够提供增强的粒子系统效果,例如 AfterBurn 以及用于流体的 RealFlowCombustion 这样的多用途软件或者只能用于粒子系统的 Particle Studio 等都可以用来生成电影或者视频中的粒子系统。

外部链接