跳轉到主要內容
Microsoft Game Development Kit (GDK) 上的 Direct3D 12 提供類似 PC 上 Direct3D 12 的低階、高效能 API。Direct3D 12.x 專為在 CPU 與 GPU 上達到極致的主機圖形效能而量身打造。Direct3D 相較於 Windows 版本的許多變更,是因為 Microsoft GDK Game OS 使用單一特定硬體平台,而且 Game OS 遊戲需要非常高的圖形效能。 Microsoft Game Development Kit (GDK) 中已新增 Direct3D 12 擴充功能。

Direct3D 12 的文件

除了 XBOX 擴充功能之外,Microsoft Game Development Kit (GDK) 上的 Direct3D 12 (D3D12.x) 與 PC 上的 Direct3D 12 (PC 上的 D3D12) 的 API 相同。
  • PC 上 D3D12 的文件可在 Microsoft Docs 取得:Direct3D 12 圖形。PC 上 D3D12 的文件也適用於 XBOX One 上的 Direct3D 12。
  • Direct3D 功能的工程規格可在 GitHub 上的 DirectX-Specs 找到。
  • Direct3D 12 的 XBOX 擴充功能只記載於 Gaming eXtensions Development Kit (GXDK) 中。如需詳細資訊,請參閱 d3d12_x。GXDK 文件不會重複 PC 上 D3D12 的文件,而只涵蓋 Microsoft Game Development Kit (GDK) 擴充功能 (D3D12.x 專屬的 API 項目)。

在 Microsoft Game Development Kit (GDK) 上使用 Direct3D 12 的範例

部分範例已更新為與 D3D12.x 相容,另有部分範例是專為 D3D12.x 建立。 若要下載最新的範例,請參閱下列位置: 若要編譯並執行範例的 D3D12.x 版本,請在 [方案組態] 下拉式功能表中,選取包含 “12” 的選項,例如 Debug12。

標頭檔

D3D12.x 方法的傳回值

在大多數情況下,如果方法是在 d3d12_x.h 中宣告並傳回 HRESULT,但 XBOX One 尚未支援該方法,該方法會傳回錯誤碼 E_NOTIMPL,表示「未實作」。 部分傳回 HRESULT 的未實作方法會傳回 S_OK 而非 E_NOTIMPL,因為該方法在 Microsoft Game Development Kit (GDK) 上永遠不會執行任何動作。該方法實際上是無作業 (no-op)。 部分傳回 HRESULT 的未實作方法會傳回 S_OK 而非 E_NOTIMPL,因為某個範例會呼叫該方法,但該範例實際上並不依賴該方法。例如,SimpleCompute 範例同時具有非同步與同步計算作業的選項。此範例預設以同步方式執行,但其初始化程式碼會呼叫非同步計算,如果未實作的方法傳回 E_NOTIMPL,就會觸發提前結束。

DirectX Tool Kit 公用程式庫

DirectX Tool Kit for DirectX 12 具有可簡化 DirectX 程式設計的公用程式庫。其設計旨在盡可能採用一般的 Direct3D 12,只在平台支援需要時才使用 XBOX 專屬功能。此程式碼基底以 Microsoft 組織專案的形式發佈在 GitHub 上:DirectXTK12。 這些程式庫有測試套件:directxtk12test。

另請參閱

d3d12_x Windows PC 上的 Direct3D 12 與 Microsoft Game Development Kit (GDK) 之間的差異 Direct3D 12 參考
最後修改於 2026年10月6日