参考教程
学习记录
这篇文章中我们简单的介绍粒子发生器的实现,我们将使用一个 ParticleSystemClass
类来控制粒子,一个 ParticleShaderClass
类来渲染粒子。
首先来看看我们的 ParticleSystemClass
类,声明如下:
1 | class ParticleSystemClass { |
这个类可能比较复杂,因为我们的粒子发生器的每一个粒子有自己的坐标,速度,颜色等等。我们使用 void EmitParticles(float);
, void UpdateParticles(float);
,void KillParticles();
来控制粒子的生命周期。我们不断的在上方生成粒子,并且在下方结束他们,以达到一个粒子瀑布的效果。
EmitParticles
方法如下:
1 | void ParticleSystemClass::EmitParticles(float frameTime) { |
我们在这里生成粒子信息,在 UpdateParticles
方法中修改他们的位置,使得其不断向下:
1 | void ParticleSystemClass::UpdateParticles(float frameTime) { |
最后当粒子移动到下方时,我们使用 KillParticles
清除粒子:
1 | void ParticleSystemClass::KillParticles() { |
我们在每一帧中调用这三个方法,他会不断地生成新粒子,修改粒子瀑布中的粒子位置并且删除已经到达底部的粒子。
ParticleShaderClass
类则是和其它的渲染类似,所以在此暂且不表,我们的主要内容便是上边的三个方法。最终效果如下: