Unity 提供多種進階 GPU 功能,可使用例項化和遮蔽剔除,大幅減少繪圖呼叫次數,並消除隱藏物件的算繪作業。這些功能可共同運作,在複雜場景中盡量提高 GPU 效率。
GPU 常駐繪圖器
GPU Resident Drawer 會自動使用 GPU 執行個體化,減少繪製呼叫並釋放 CPU 處理時間。如果場景很大,且許多物件共用相同的網格,這項功能就最有效。
啟用這項功能
- 在 Unity 主選單中,依序點選「Edit」>「Project Settings」>「Graphics」。
- 在「Shader Stripping」(著色器剝除) 區段中,將「Batch Renderer Group Variants」(批次算繪器群組變體) 設為「Keep All」(保留全部)。
- 找到「Default Render Pipeline」(預設算繪管線) 資產,也就是 URP 資產。
- 在專案中搜尋這項資產。
- 在資產上按一下滑鼠右鍵,然後選取「屬性」。
- 在「Renderer List」中,以滑鼠右鍵按一下「Universal Renderer」,然後選取「Properties」。
- 將「Rendering Path」(算繪路徑) 設為「Forward+」(轉送+)。
- 返回 URP 資產,選取該資產,然後按一下「Debug」。
- 將「GPU Resident Drawer Mode」設為「Instanced Drawing」。
GPU 遮蔽剔除
遮蔽剔除功能會使用 GPU (而非 CPU) 排除隱藏在其他物件後方的物件。這項功能在遮蔽程度較高的場景 (例如室內或密集環境) 中最有效。
啟用這項功能
- 在 Unity 主選單中,依序點選「Edit」>「Project Settings」>「Graphics」。
- 啟用「GPU 遮蔽剔除」。
- 選取「URP」分頁標籤。
- 在「Render Graph」(算繪圖表) 部分,停用「Compatibility Mode (Render Graph Disabled)」(相容模式 (已停用算繪圖表))。
最佳化緩衝區捨棄
這項最佳化措施會捨棄不必要的深度緩衝區資料,並有效處理 MSAA 顏色緩衝區,進而減少記憶體作業,提升效能。
優點
- 避免不必要的圖像資料複製和移動。
- 加快所有情況下的 GPU 算繪速度。
啟用這項功能
- 在 Unity 主選單中,依序點選「Edit」>「Project Settings」。
- 展開「XR Plug-in Management」(XR 外掛程式管理) 部分,然後點選「OpenXR」。
- 選取「Android」分頁標籤。
- 選取「Android XR」功能群組。
- 按一下「Android XR 支援」旁的齒輪圖示。
啟用「最佳化緩衝區捨棄 (Vulkan)」。
停用從前到後轉譯
從前到後算繪是您可以在場景中嘗試的算繪順序實驗。如果搭配低解析度 Z (LRZ) 等最佳化功能,在背景物件使用耗用大量資源的片段著色器,且有大量遮蔽的場景中,可能有助於提升效能。
不過,啟用這項設定也可能會導致成效下滑。因此,建議您保留預設設定 (停用)。