# 粒子系统
粒子系统表示三维计算机图形学中模拟一些特定的模糊现象的技术,而这些现象用其它传统的渲染技术难以实现真实感的物理运动规律。经常使用粒子系统模拟的现象有火、爆炸、烟、水流、火花、落叶、云、雾、雪、尘、流星尾迹或者象发光轨迹这样的抽象视觉效果等等。[1]
Tx3d Engine中提供了一套可配置的粒子系统,通过配置粒子渲染器、发射器、初始化器、行为控制器可以得到不同的粒子效果,粒子系统结构如下图所示:
如上图所示,一个粒子系统拥有多个粒子渲染器,每个粒子渲染器拥有多个粒子发射器,每个粒子发射器拥有多个粒子初始化器和多个粒子行为控制器。其中,渲染器负责粒子的渲染绘制,发射器负责管理粒子的创建、更新、淘汰,初始化器负责初始化粒子属性,行为控制器则会在粒子生命周期中不断更新其属性。
注意
使用粒子系统需要引入 @tx3d/particlesystem 包
粒子系统(ParticleSystem)作为一个渲染组件,它的使用方式和其它组件一样。
import { ParticleSystem } from '@tx3d/particlesystem';
// 创建一个实体
const entity = engine.createEntity();
// 添加一个粒子系统组件
const particleSystem = entity.addComponent( ParticleSystem );
1
2
3
4
5
6
7
2
3
4
5
6
7
# 粒子系统接口
🌏 addRenderer 添加一个粒子渲染器
// 添加一个粒子渲染器器
particleSystem.addEmitter( renderer );
1
2
2
🌏 getRenderer 通过索引获取粒子渲染器
// 获取0号索引粒子渲染器
const renderer = particleSystem.getRenderer( 0 );
1
2
2
🌏 removeRenderer 移除一个粒子渲染器
// 移除一个粒子渲染器
particleSystem.removeRenderer( renderer );
1
2
2
🌏 removeAllRenderers 移除所有粒子渲染器
// 移除所有粒子渲染器
particleSystem.removeAllRenderers();
1
2
2