SRP Batcher 是一種繪制調用優化,可顯著提高使用 SRP 的應用程序的性能,SRP Batcher 減少了Unity為使用相同著色器變體的材質準備和調度繪制調用所需的CPU 時間。
工作原理:
傳統優化方法通過減少繪制調用次數提升性能,而SRP Batcher的核心理念在于降低繪制調用間的渲染狀態切換開銷。其核心機制是將bind draw和GPU命令序列打包為SRP批處理單元,通過批量處理渲染狀態變更實現性能優化。流程圖如下:
注:bind 和 draw 命令的批處理減少了繪制調用之間的 GPU 設置。
核心優化機制:
1.CPU 僅處理 Unity 引擎屬性。
2.專用代碼路徑更新一個大型的存儲每個對象所有屬性的GPU 常量緩沖區(下圖中標記為 Per Object large buffer)。
3.所有材質內容都保留在 GPU 內存中的持久常量緩沖區中。
注:
1.為了實現渲染的最佳性能,每個 SRP 批處理應包含盡可能多的bind draw 和 GPU命令 。
2.使用盡可能少的