← 全部概念
游戏系统 / 23
粒子系统
一个发射器,许多短暂的生命
交互演示
交互演示 · 移动指针或点击画面,观察变化
粒子系统用一个发射器和少量参数生成许多短寿命的精灵:发射速率、寿命、发射方向的散布范围、速度、重力和阻力。每个粒子的大小和不透明度也会随自身生命周期变化。这里的火花、烟雾和彩纸屑使用相同的代码,只是参数不同。
适用场景
用一套发射器配置生成大量短寿命特效。将发射、模拟和渲染分开,让它们分别拥有自己的性能预算和质量设置。
实现示例
不依赖特定引擎的伪代码。请根据你使用的引擎调整函数和坐标约定。
spawnBudget += emissionRate * dt
while spawnBudget >= 1:
spawnFromPool()
spawnBudget -= 1
for particle in active:
particle.velocity += gravity * dt
particle.position += particle.velocity * dt常见错误
如果每个渲染帧都生成固定数量的粒子,粒子密度就会随帧率变化。还要限制存活粒子数量和透明图层的重叠程度;对象池无法解决过度绘制造成的瓶颈。
内容原作 Nicolas Zullo · 中文整理与交互改编