欢迎光临散文网 会员登陆 & 注册

Unity 特效优化 特效drawcall合批

2023-07-23 00:27 作者:杰森做游戏  | 我要投稿

同一个粒子特效父物体下有两个特效子节点如下图

编辑切换为居中

attackSp 和 attackSp (1) 材质不同

工程只保留一个特效父节点 此时运行工程

编辑切换为居中

batches为4

再开一个特效

编辑切换为居中

此时batchers 为6


再开一个特效

编辑

此时batchers 为8


发现并没有进行合批操作,将其中一个特效的renderQuene 手动+1

编辑切换为居中


编辑

再次尝试


编辑切换为居中

此时batchers 为4 进行了合批操作



1. 同样的ParticleSystem一定会自动合批。

2. 特效中相同材质的,应该是可以被自动合批的,但是如果是半透的情况下,如果渲染队列不同,会合批失败,需要手动的将渲染队列变更为3000+1,+2..以此类推,只要不同即可。猜测原因可能是,当渲染队列相同是,半透物体的前后无法确认,导致合批失败;当渲染队列不同的时候,底层可能无脑使用了渲染队列来作为渲染顺序,所以就不用自己排序了,所以相同材质的就可以被合批了。

ParticleSystem的order in layer也能手动划分渲染次序使得合批成功,ParticleSystem的order in layer排序优先级比渲染队列高,并且当两个都相同时,会随机决定渲染顺序。


Unity 特效优化 特效drawcall合批的评论 (共 条)

分享到微博请遵守国家法律