D3D12 程式碼Walk-Throughs
本節提供範例案例的程式碼。 許多逐步解說都提供將哪些程式碼新增至基本範例所需的詳細資料,以避免針對每個案例重複基本元件程式碼。
如需最基本的元件,請參閱 建立基本 Direct3D 12 元件 一節。 下列逐步解說說明更進階的案例。
本節內容
主題 | 描述 |
---|---|
使用 D3D11on12 的 D2D |
D3D1211on12範例示範如何透過 D3D12 內容轉譯 D2D 內容,方法是在 11 型裝置與 12 個裝置之間共用資源。 |
多引擎 n-body 重力模擬 |
D3D12nBodyGravity範例示範如何以非同步方式執行計算工作。 此範例會啟動一些具有計算命令佇列的執行緒,並在執行 n 主體重力模擬的 GPU 上排程計算工作。 每個執行緒都會在兩個緩衝區上運作,其中包含位置和速度資料。 每次反覆運算時,計算著色器都會從一個緩衝區讀取目前的位置和速度資料,並將下一個反覆運算寫入另一個緩衝區。 當反復專案完成時,計算著色器會交換哪個緩衝區是用於讀取位置/速度資料的 SRV,這是用於寫入位置/速度更新的 UAV,方法是變更每個緩衝區上的資源狀態。 |
預先分割查詢 |
D3D12PredicationQueries範例示範使用 DirectX 12 查詢堆積和預先分割來遮蔽。 本逐步解說說明擴充 HelloConstBuffer 範例以處理預先判斷查詢所需的其他程式碼。 |
使用 HLSL 5.1 的動態索引編制 |
D3D12DynamicIndexing範例示範著色器模型 5.1 中提供的一些新 HLSL 功能,特別是動態索引編制和未系結陣列 ,每次使用動態選取的材質來轉譯相同的網格。 使用動態索引編制時,著色器現在可以編制陣列的索引,而不需要在編譯時期知道索引的值。 與未系結陣列結合時,這會為著色器作者和藝術管線增加另一層間接和彈性。 |
間接繪圖和 GPU 清除 |
D3D12ExecuteIndirect 範例示範如何使用間接命令來繪製內容。 它也示範如何在發出這些命令之前,在計算著色器中的 GPU 上操作這些命令。 |