這次要記錄的是明明都是使用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,讓我非常納悶
Render Pipeline Asset Setting的SRP Batcher也有打開
結果檢查到URP本身的Lit shader出現,發現了異狀
什麼URP自家的Lit竟然不兼容性SRP Batcher
看來應該是動到了某些設定產生的,和空專案交叉比對後,原本好好的專案只要是開啟了我的Scene後,URP自家的Lit Shader就會不兼容SRP Batcher
最後才發現是場景的Directional Light的Light Component底下的Mode只要改成Mixed(不知道啥時動到的)就無法SRP Batch,看來就像他說的
這個特定的內置屬性(ProbesOcclusion)不能是一半
改成Realtime後,對URP底下的Lit Shader重新Reimport就成功了
文章標籤
全站熱搜