目的
为了实现创建非常多的粒子的需求,我们就需要使用到GPU
效果
步骤
1. 复制一份上篇博文中创建的粒子,这里重命名为“P_Sparks_GPU”
打开“P_Sparks_GPU”,将生成的粒子数量改为2000,可以看到发射器最多只能生成1000个粒子
如果想生成足够多的粒子,我们就需要将CPU粒子改为GPU粒子,在发射器中添加“类型数据-》新建GPU Sprites”
我们需要删除如下两个模块才能看到发射器生成粒子
如果觉得粒子太亮了,可以通过“生命内颜色”模块减少粒子的自发光程度
删除“初始位置”模块
当我们移动相机视角直到发射器不在视口内时,可以看到发射器就会停止生成粒子
对于这种问题的解决方法是创建固定范围区域在该粒子周围,点击“边界-》设置固定边界”
然后点击“重新开始关卡”
此时可以看到即使发射器不在视口边界内,粒子还是会正常生成
接下来我们希望GPU粒子任然会有碰撞效果,需要添加一个“碰撞-》碰撞”模块
如果希望粒子反弹的高度低一些,可以通过减少“回弹力”的数值实现
如果希望粒子碰撞后滑出的距离短一些,可以通过增大摩擦力实现
如果希望滑出的距离远一些,可以通过减少碰撞模块中的摩擦力增加回弹力,增加生命周期模块中的生命周期,增加初始速度模块中的起始速度等方式实现
添加“向量场-》局部向量场”模块
向量场设置为“Vel_219”
在视图选项中勾选向量场
调整向量场缩放为20,20,20
我们可以通过视口中的坐标轴来移动向量场
紧密度可以控制粒子如何直接跟随场中的向量。当紧密度设置为1时,粒子直接从场中读取其速度,从而准确地跟随场。
增加生命周期
为了让粒子跑更远,增大向量场的强度
我们可以通过添加“向量场-》向量场旋转率”来让向量场不停旋转
此时效果如下