最佳化 GPU 算繪

Unity 提供多種進階 GPU 功能,可使用例項化和遮蔽剔除,大幅減少繪圖呼叫次數,並消除隱藏物件的算繪作業。這些功能可共同運作,在複雜場景中盡量提高 GPU 效率。

GPU 常駐繪圖器

GPU Resident Drawer 會自動使用 GPU 執行個體化,減少繪製呼叫並釋放 CPU 處理時間。如果場景很大,且許多物件共用相同的網格,這項功能就最有效。

啟用這項功能

  1. 在 Unity 主選單中,依序點選「Edit」>「Project Settings」>「Graphics」
  2. 在「Shader Stripping」(著色器剝除) 區段中,將「Batch Renderer Group Variants」(批次算繪器群組變體) 設為「Keep All」(保留全部)
  3. 找到「Default Render Pipeline」(預設算繪管線) 資產,也就是 URP 資產。
  4. 在專案中搜尋這項資產。
  5. 在資產上按一下滑鼠右鍵,然後選取「屬性」
  6. 在「Renderer List」中,以滑鼠右鍵按一下「Universal Renderer」,然後選取「Properties」
  7. 將「Rendering Path」(算繪路徑) 設為「Forward+」(轉送+)
  8. 返回 URP 資產,選取該資產,然後按一下「Debug」
  9. 將「GPU Resident Drawer Mode」設為「Instanced Drawing」

GPU 遮蔽剔除

遮蔽剔除功能會使用 GPU (而非 CPU) 排除隱藏在其他物件後方的物件。這項功能在遮蔽程度較高的場景 (例如室內或密集環境) 中最有效。

啟用這項功能

  1. 在 Unity 主選單中,依序點選「Edit」>「Project Settings」>「Graphics」
  2. 啟用「GPU 遮蔽剔除」
  3. 選取「URP」分頁標籤。
  4. 在「Render Graph」(算繪圖表) 部分,停用「Compatibility Mode (Render Graph Disabled)」(相容模式 (已停用算繪圖表))

最佳化緩衝區捨棄

這項最佳化措施會捨棄不必要的深度緩衝區資料,並有效處理 MSAA 顏色緩衝區,進而減少記憶體作業,提升效能。

優點

  • 避免不必要的圖像資料複製和移動。
  • 加快所有情況下的 GPU 算繪速度。

啟用這項功能

  1. 在 Unity 主選單中,依序點選「Edit」>「Project Settings」
  2. 展開「XR Plug-in Management」(XR 外掛程式管理) 部分,然後點選「OpenXR」
  3. 選取「Android」分頁標籤。
  4. 選取「Android XR」功能群組。
  5. 按一下「Android XR 支援」旁的齒輪圖示。
  6. 啟用「最佳化緩衝區捨棄 (Vulkan)」

    Unity 設定可最佳化緩衝區捨棄作業

停用從前到後轉譯

從前到後算繪是您可以在場景中嘗試的算繪順序實驗。如果搭配低解析度 Z (LRZ) 等最佳化功能,在背景物件使用耗用大量資源的片段著色器,且有大量遮蔽的場景中,可能有助於提升效能。

不過,啟用這項設定也可能會導致成效下滑。因此,建議您保留預設設定 (停用)。