參考鏈接:
https://docs.unity3d.com/Manual/DrawCallBatching.html
原理:
cpu每幀把可以進行動態批處理的網格進行合並,再把合並后的數據傳給gpu,使用同一個材質對其渲染
條件限制:
1.
要求mesh不能超過900個頂點屬性,同時不能超過300個頂點
如果shader用到了Vertex Position, Normal and single UV,那么不能超過300個頂點
如果shader用到了Vertex Position, Normal, UV0, UV1 and Tangent,那么不能超過180個頂點
如下,Cube可以被批處理,Sphere不可以被批處理(單個Sphere頂點數>500)
2.
transform的scale屬性不能有負值
如下,圖一均為(1,1,1),圖二將其中一個改為(1,-0.1,1)
3.
使用不同的材質會破壞批處理
4.
多個pass的shader會破壞批處理
如下,Cube使用的是默認材質Default-Material,對應shader為內置的Standard,是一個有多個pass的shader。圖一使用平行光,圖二使用點光源