動態(tài)合批原理:

動態(tài)合批條件:①使用相同的材質(zhì)球②正在視野中
注意:Shadow casters的渲染是個例外,盡管Shadow casters使用不同的材質(zhì),但是只要他們的材質(zhì)中給Shadow Caster Pass使用的參數(shù)是相同的,他們也能進(jìn)行動態(tài)合批
動態(tài)合批的適用范圍:①未勾選Static的網(wǎng)格模型②粒子系統(tǒng)、線條或軌跡渲染器
動態(tài)合批能優(yōu)化性能的原因:
①符合條件的對象將被合并到一個DrawCall中渲染
動態(tài)合批的缺點:
①由于模型頂點變換的操作,計算的模型頂點數(shù)量不宜太多,否則CPU串行計算耗費的時間太長會造成場景渲染卡頓,所以動態(tài)合批只能處理一些小的模型
動態(tài)合批失敗的情況:
①物體Mesh大于等于900個面
②改變Renderer.material將會造成一份材質(zhì)的拷貝,導(dǎo)致不滿足"使用相同材質(zhì)球"的合批條件
③如果你的著色器使用頂點位置,法線和UV值三種屬性,那么你只能批處理300頂點以下的物體;如果你的著色器需要使用頂點位置,法線,UV0,UV1和切向量,那你只能批處理180頂點以下的物體,否則都無法參與合批
動態(tài)合批中斷的情況:
①位置不相鄰且中間夾雜著不同材質(zhì)的其他物體
②物體如果都符合條件會優(yōu)先參與靜態(tài)合批,然后是GPU Instancing,最后才是動態(tài)合批
③物體之間如果有鏡像變換則不能進(jìn)行合批
④擁有l(wèi)ightmap的物體和沒有l(wèi)ightmap的物體
⑤使用Multi-pass Shader的物體會禁用動態(tài)合批
⑥Unity的Forward Rendering Path(前向渲染路徑)中如果一個物體接受多個光照會為每一個per_pixel light產(chǎn)生多余的模型提交和繪制,從而附加了多個Pass導(dǎo)致無法合批