最近游戏场景希望加入一些ParticleSystem来丰富场景,这样肯定会带来一定的性能开销。一般来说ParticleSystem的优化就是尽量减少粒子数,尽量不使用粒子碰撞等。而今天要说的是,多个ParticleSystem之间的Draw Call问题。

例子:

首先场景中添加3个ParticleSystem如下

运行效果

这里展示了3个ParticleSystem叠加在一起的效果。这种需求会经常碰到。

起初采用的方案:给每个ParticleSystem添加了不同的材质,每个材质对应相应的图片。如图:

统计一下Draw Call

优化方案:

减少Draw Call, 第一个想到的就是合并到一张大图。

可以使用Texturepacker。打包结果如下:

因为我的Texturepacker的mac版是免费的所以打包出来有水印。。请忽略

然后把3个ParticleSystem使用同一材质,对应纹理改成打包后的图片

重点来了:

ParticleSystem中勾选Texture Sheet Animation->Mode->Sprites,选择对应的Sprite

OK! 运行看一下Draw Call

可以看到Call减少2.

最新文章

  1. Android之UI编程(二):表格布局
  2. django 模板中url的处理
  3. C#学习总结~~~
  4. git学习笔记05-从远程库克隆
  5. 【WP之一】]独立存储
  6. tensorflow 实现线性方程
  7. PostgreSQL学习手册
  8. JVM 自动内存管理:对象判定和回收算法
  9. 表的操作(Oracle和DB2)
  10. SQL FIRST() 函数
  11. 大数据学习之HDFS基本API操作(下)06
  12. PHP读取文本文件(TXT)
  13. Kong安装教程(v1.0.2)
  14. linux 用户及用户组管理
  15. js中一些对字符串的操作等
  16. 详解Object.constructor
  17. flex布局与ellipsis冲突问题
  18. web系统中上下移动功能的实现
  19. mount 和 umount 命令
  20. android中Animation动画的连续播放与播放完毕后停留在最后的状态

热门文章

  1. LeetCode406 queue-reconstruction-by-height详解
  2. PowerJob 的自实现高可用方案,妙妙妙!
  3. Node学习基础之安装node以及配置环境变量
  4. 谈谈BUG严重级别(severity)管理
  5. docker入门3-docker swarm
  6. Jmeter 常用函数(1)- 详解 __Random
  7. linux zip压缩文件忽略指定的文件夹
  8. VyOS软路由系统基本设置
  9. Training spiking neural networks for reinforcement learning
  10. TCP为什么需要握手