粒子为什么不能合批?

粒子为什么不能合批,是因为自身带了一个shader吗?甚至每加一组粒子就会增加一个drawcall,如何能让它合批 :upside_down_face:

怎么把粒子系统自带的虚化shader给去了

我发现引擎自带的shader里有一些用了会不显示,有一些用了没问题,我就想把粒子的自带的shader剔除了,让它有办法动态合图,有没有办法

这些粒子都没办法和自己合批,每增加一个粒子组件就增加一个drawcall

可能是每个粒子都生成一个材质

我也没有找到办法

看了下别人的帖子,现在系统自带的粒子系统,默认就是不不支持合批,不知道是为啥 :upside_down_face:

粒子的sprite Frame是合批的,如果参与合批,单次drawcall的计算量就会增大,可能会降低性能

有办法让它强制合批吗?

  • 渲染合批
    • 可以为纹理开启合图功能
    • 需要相同材质球才能合批

我几个挨在一起的粒子系统用了一样的材质也没见它合批呀


可能是要修改sharedMaterial

真可惜啊,发现cocos的粒子系统和拖尾效果默认都不能合批 :upside_down_face:

不知道改一改粒子系统的_render方法不知道能不能合批,毕竟commitComp是和合批有关的关键方法

貌似不能在这改 :joy_cat:

共享节点找到一篇教程貌似可以用来实现粒子系统 :yum:

有没有什么办法像上面说的,一个sprite组件渲染多次来实现一个粒子系统呀?到底要改渲染类的哪个方法呀?

商城不是有买一个不就完事了

粒子系统没做合批逻辑,没有走ui batch,就算你是相同材质球,相同纹理都不行的,商城买一个吧。。。 Cocos Store,我当时为了做这个合批改了几种方案,最终找到一个性能最优的

穷学生买不起