贴图

  • 压缩格式ASTC4x4,视项目情况可以6x6,因为特效本身需要一些高精度贴图,不建议压到8*8甚至更高。
  • 需要追逐粒子的效果表现,需要大量图层、运算,做帧动画效果,使用Texture Sheet Animation制作。
  • 像素填充率。像素填充率即每秒钟显示芯片/卡能在显示器上画出的点的数量。如果一个像素被反复绘制多次,必然占用的资源越多。特效基本都为半透材质,在alpha=0的部分仍存在绘制。尽量保证显示的贴图不要留过多透明部分。否则可能会产生大量overdraw。

发射器

测试机型,均为横屏,测试数据只为验证粒子参数对性能影响,不做具体参考标准:

红米6A(低档) 荣耀8X(中档)

同屏粒子

单个每秒发射20个粒子,不设粒子上限 红米6A:大于600开始出现掉帧 荣耀8X:大于1000开始出现掉帧

尝试修改发射粒子数,保证同屏粒子最大数(设置最大max particle数量)不掉帧的情况下:

红米6A(保持同屏粒子总量600):

每秒发射数量 持续时间 发射器个数 总量 帧率
1000 1 1 600 60
1000 4 1 600 60
600 1 1 600 60
150 4 1 600 60
150 1 4 600 60

上述情况均无明显掉帧情况。 后续测试都默认采用上面表格第三种情况测试。(600,1,1)

修改渲染模式

上述默认渲染模式Billboard,修改渲染模式为streched。 修改Length Scale 为2,帧率:41

修改Speed Scale为1,帧率:18

其他模式无降帧。

综上针对粒子的优化策略:

  • 控制粒子发射器数量、控制每秒产生粒子数量、保证粒子总量、持续时间在一个范围内。
  • RenderMode优先级:Billboard = Vertical Billboard = Horizontal Billboard > Mesh > Streched,不建议使用Streched,在变形情况下特效会导致大量掉帧。