基于GPU的游戏粒子系统设计摘要:在MMORPG游戏中经常出现同屏显示成千上万的粒子特效,传统引擎虽然使用多线程来计算粒子的运动,但是也很难应付大规模的计算量(考虑到一般配置),更何况MMORPG中还空出许多CPU去处理逻辑
提出基于GPU进行粒子计算的粒子系统,利用GPU的并行计算多个对象,实现并行化高效的粒子系统
关键词:粒子系统;GPU;并行计算1系统原理在游戏设计中,基于粒子系统可以实现火、爆炸、烟、云、雾等效果
粒子系统主要用来解决由大量按一定规则运动(变化)的微小物质组成的大物质在计算机上的生成与显示的问题
经常使用粒子系统模拟的现象有火、爆炸、烟、水流、火花、落叶、云、雾、雪、尘、流星尾迹或者象发光轨迹这样的抽象视觉效果等
粒子系统的实现:①每个粒子是一个带纹理的三角形/多边形,粒子系统由多个粒子组成;②粒子按一定规则运动;③每个粒子有自己的属性,如位置、速度、质量、尺寸、年龄、运动轨迹斜率、颜色等;④粒子系统更新循环划分为两个不同的阶段:参数更新/模拟阶段以及渲染阶段;⑤参数更新/模拟阶段根据粒子系统信息更新每个粒子的速度、位置、尺寸、颜色等信息;⑥渲染阶段根据粒子属性重新绘制粒子;⑦每个粒子都有自己的生命,年龄超过最大年龄的粒子会被销毁,系统会生成新的粒子
2系统设计2
1框架分析ParticleFactory是粒子工厂类,负责创建和销毁粒子,同时管理了当前创建的粒子
Iparticle为粒子的接口类,所有粒子都从它派生出来,它定义了粒子的基本接口:Play、Stop、GetProperty和SetProperty
MMO_Particle表示使用MMO_计算的最终生成面片的粒子,MMO_MeshParticle表示使用MMO_计算的基于网格的粒子
BaseGpuParticle表示使用GPU计算和更新粒子
每一个粒子对象都有一个指向ParticlePro