粒子效果
从中心点向各个方向发散出粒子,同时粒子仿佛受到原点牵引力的影响而逐渐减速,颜色和大小都和距离原点的位置有着比较明确的关系。在减速到0后,会逐渐向原点加速运动。
Niagara蓝图部分
虽然是1系列的最后一个粒子示例,这个例子还是非常简单的,没有涉及到很多复杂的计算。主要就是介绍了TRANSIENT这个命名空间下的参数特性。Transient本意“临时的”。在这里他确实就是像一个临时工一样,没有太多的权限(局限在给定的栈内,并且每帧会重新计算,不会在帧与帧之间保存他的数据),但是相应的,工资(消耗)就不用给的很高。这样一看,粒子的变量反而像是正式员工了。当然,这里使用粒子属性去做其实也可以获得一样的效果。后面我会给出两种方案的消耗比较。
效果实现分析
从中心向四周发射——Add Velocity from Point。在Particle Spawn阶段给每个生成的粒子一个随机的速度。同时再给一个黑洞力——Point Attraction Force,从一点发出的吸引力。这样整个的运动模型就搭建完毕。
然后就轮到我们的变量出场。这里为了后续插值的方面,做了一个归一化的操作,即用粒子和原点的距离除以145,大于1的话取1。
后续用上面的参数进行插值。可以得到粗略的性能数据(这里不做多次采样,只是做数据的粗略分析)。
上面使用的粒子生成是8个粒子,那让我们给点压力,10000个CPU粒子。这时来看的话,已经有一些差别了,使用Transient的峰值在30ms左右,而使用Particle的峰值在38ms左右。项目规模庞大时,这可以作为其中一个需要去优化考量的点。
总结
到这里Niagara内容示例1系列的粒子就算是过完了,可以看出主要的内容还是在围绕不同层级的属性(目前接触了Emitter Attribute 和 Stage Transient)展开,同时穿插一些力和速度的效果和解算。在完成这一部分的分析后,其实对于熟悉Cascade的人来说已经完全可以拿Niagara来做效果了,当然这还只是Niagara最浅显的一层。后面会继续在粒子的地铁里穿梭,直到尽头,或者没有尽头。