勘误
SRP Batcher并没有实际减少Draw Calls,而是优化提升了调用Draw Calls前的大量的工作效率。所以后面SRP Batching的优化drawcalls,改成优化了batches。也就是将它们调用drawcalls的设置工作量合并批处理了。
具体可以看我新的文章,传送门:
琅琅:Unity SRP Batcher的工作原理zhuanlan.zhihu.com概述
做Unity性能优化,减少Draw Calls是最头疼的事。
既然用到了URP管线,那么在做渲染优化的时候,就需要针对URP管线做相应的优化。
今天发现了除了动态batching和静态batching以外的一个非常酷炫的batching,那就是SRP Batching。
因为动态batching限制较多,包括模型顶点不能超过300个,shader的顶点属性不能超过900个(假如你的vertex shader用到了vertex position,normal,一个uv,那300个顶点*3 = 900,这样计算的),并且材质和贴图得必须一致,还不能用材质的copy等等。
其中模型顶点数量限制这个就很无解了,我们项目的模型顶点动辄就超过500到一千,那么做动态batching就是天方夜谭。
但是draw calls数量太多了&