贴图
- 压缩格式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,在变形情况下特效会导致大量掉帧。