Meshlet 剔除範例
Meshlet 剔除範例
建議您先閱讀 Meshlet 主題。
Meshlet 剔除範例主題呈現了以 Amplification Shader 實作一種稱為 meshlet 剔除 之技術的虛擬程式碼。由於 meshlet 的基本型別在理想情況下符合空間和方向上的一致性,因此我們可以為每個 meshlet 儲存有效率的剔除資料。這可用於在 Amplification Shader 中快速針對檢視剔除 meshlet 清單,並只為留存下來的 meshlet 分派 Mesh Shader 執行個體。
此技術從 Amplification Shader 開始,其中每個執行緒處理一個 meshlet。這表示我們必須在命令清單上分派 ceil(MeshletCount / GROUP_SIZE) 個執行緒群組。
接著,每個 Amplification Shader 執行緒群組負責處理 GROUP_SIZE 個 meshlet。每個執行緒會針對檢視範圍剔除其 meshlet、決定其匯出位置,然後將其索引寫入承載資料。接著,它會使用 DispatchMesh 為每個要轉譯的留存 meshlet 分派一個 Mesh Shader 執行緒群組。然後,每個 Mesh Shader 執行緒群組會從承載資料載入其 meshlet,並匯出其幾何。
完整範例可在 XBOX 開發人員下載頁面上找到。
最後修改於 2026年10月6日
