這次要記錄的是明明都是使用URP的Lit Shader,SRP Batcher卻無法Batch的問題。

都是坑啊~人生就是如此

Unity針對DrawCall處理有四種不同的Batch優化方式,Dynamic Batching, Static Batching, GPU Instancing和SRP Batcher

這次專案遇到SRP Batcher的問題,SRP Batcher支援URP/HDRP項目,但明明就是URP專案,檢查Frame Debuger時卻沒有出現SRP Batch,這個問題又讓我卡一段時間

SRP Batcher不能和GPU Instancing同時使用,但卻只支援GPU Instancing,讓我非常納悶

截圖 2022-09-01 下午6.02.35

Render Pipeline Asset Setting的SRP Batcher也有打開

截圖 2022-09-01 下午6.11.01

結果檢查到URP本身的Lit shader出現,發現了異狀

截圖 2022-09-01 下午6.05.16

什麼URP自家的Lit竟然不兼容性SRP Batcher

看來應該是動到了某些設定產生的,和空專案交叉比對後,原本好好的專案只要是開啟了我的Scene後,URP自家的Lit Shader就會不兼容SRP Batcher

最後才發現是場景的Directional Light的Light Component底下的Mode只要改成Mixed(不知道啥時動到的)就無法SRP Batch,看來就像他說的

這個特定的內置屬性(ProbesOcclusion)不能是一半

改成Realtime後,對URP底下的Lit Shader重新Reimport就成功了

截圖 2022-09-01 下午6.27.52

截圖 2022-09-01 下午6.28.54

arrow
arrow

    Kouhei 發表在 痞客邦 留言(0) 人氣()