首先得理解setpass call于drawcall batch 的区别以及定义,一次cpu把数据交给gpu处理叫一个drawcall。draw位于setpasscall 和batch中。使用相同材质信息draw call 才能放到一个batch中。一个材质球引用的shader可以有多个pass,因此携带这个材质球的物体会被渲染多次,"激活"一一个pass的过程就是set pass call。因此改变影响 pass的行为都会触发一次set pass call(比如游戏运行中开启阴影进而影响了渲染管线),因此把set pass call 作为影响drawcall的一个标准。
作者:paridas
链接:https://www.zhihu.com/question/299878086/answer/534969185
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
Unity基础知识回顾(一)DrawCall、Batch、SetPassCall的区别_batch drawcall_大鲸鱼锅锅的博客-CSDN博客
Unity URP中的Static Batching、GPU Instancing、SRPBatcher简单介绍_Star_MengMeng的博客-CSDN博客