文章目录
概述
粒子系统就是一系列独立对象的集合,这些对象通常用简单的图形或者点来表示。
为什么它很重要?毫无疑问,粒子系统可以用来模拟各种自然现象,比如接下来我们要模拟的火焰、烟雾。实际上,它的作用不仅如此,如果我们要用代码对自然界中的各种事物建模,你会发现我们面对的都是多个对象的系统。比如一堆弹球的运动、鸟群的繁殖以及生态系统的演化,这些研究对象都是由复数组成的系统。
要用代码对自然界中的各种事物建模,我们必须得先知道,一个粒子它有什么最基本的特征。我在这里给大家介绍两个很重要的:运动方式和生命周期。
运动方式
自然界的各种事物有一个很明显的特征,就是它们是会运动的:鸟会飞,植物会随风摇曳。俗话说得好:“生命在于运动”。那么接下来我们就先来看看如何描述一个粒子的运动方式。
平移
第一种运动方式是平移,常见的平移有匀速直线运动、*落体、抛体运动等。这种运动的特点就是在运动过程中,物体上任何两点的连线都是平行的。比如下面就是一个*落体运动的小球。
描述一个粒子的平动,我们需要三个向量:速度,加速度,位置。同时需要根据以下的公式来更新一个粒子的位置。
转动
第二种运动方式是转动,就是物体绕着一个点旋转,这个点可以在物体内部,也可以在物体外部。比如下图中两个正方形一个绕着自己中心点旋转,一个绕着一个点旋转。
描述一个粒子的转动,我们需要三个标量:角速度,角加速度,角度。分别对应物体平移的速度、角速度、位置。同们也有一个公式用来指导我们更新一个粒子的角度。
生命周期
自然界的万事万物都有生命周期,没有一样东西可以永远存在下去。所以我们需要用一个变量来表示粒子的剩余的生命长度,然后在每次更新的时候不断减小这个变量,同时粒子的外貌也可以随着这个变量的改变而改变。但这个变量小于0的时候,将其删除。
下面就是一个透明度度随生命流失而增大的小球,最后当生命剩余长度为0的时候就消失不见。