Direct3D 是使用轉譯管線繪製基本類型,或使用計算著色器執行平行作業的低階 API。
什麼是 Direct3D?
Direct3D 是一種低階 API,可用來繪製每個畫面的三角形、線條或點,或啟動 GPU 上的高度平行作業。
Direct3D:
- 將不同的 GPU 實作隱藏在一致的抽象背後。 但您仍然需要知道如何繪製 3D 圖形。
- 其設計目的是要驅動專用圖形處理器。 較新的 GPU 有數百或數千個平行處理器。
- 強調平行處理。 您設置了一系列渲染或計算狀態,然後開始一項操作。 您不會等候操作的即時反饋。 您不會混合 CPU 和 GPU 作業。
您可以使用哪一個 Direct3D API?
您選擇的 Direct3D API 取決於您要撰寫的應用程式樣式。
- 如果您想要撰寫 UWP 應用程式,請使用 Direct3D 11、DXGI 和 HLSL API 的子集。 如需這些 API 的清單,請參閱 適用於 UWP 應用程式的 Win32 和 COM API。 若要瞭解如何撰寫 Direct3D 11 Windows 市集應用程式,請參閱 使用 DirectX建立 3D 圖形。
- 如果您撰寫傳統型應用程式,您可以使用完整的 Direct3D 11、DXGI 和 HLSL API 集合。
- 從 Windows 8 開始,我們不再主動支持傳統型應用程式的 XNA 架構。 但是 Windows 市集應用程式、UWP 應用程式和傳統型應用程式可以使用完整的 XAudio2 和 DirectXMath API。 傳統型應用程式可以使用完整的 XInput API,而 Windows 市集應用程式和 UWP app 可以使用大部分的 XInput API;如需詳細資訊,請參閱 XInput 版本。
哪個 Direct3D 版本?
您選擇的 Direct3D API 版本取決於您要設定目標的作系統和硬體層級。
- 如果您想要以 Windows 8 和更新版本為目標,請使用 Direct3D 11 API。
- 請在 Windows XP 及後續版本中使用 Direct3D 9 API。 所有硬體都支援 Direct3D 9 API,甚至是較新的 Direct3D 11 層級硬體。
- 搭配 Windows Vista 和更新版本使用 Direct3D 10 API。 只有 Direct3D 10 層級和更新版本的硬體支援 Direct3D 10 API。
- 使用 Direct3D 10.1 和 Direct3D 11 API 並搭配 Windows 7 或更新版本。 您也可以在 Windows Vista 中,使用 Direct3D 10.1 和 Direct3D 11 API,並搭配 Service Pack 2(SP2)。
Direct3D 渲染管線
在 Direct3D 轉譯管線中,數據流來自數個來源,例如河流的支流。
- 流程的某些部分可程式化。
- 某些部分有旋鈕和撥號。
- 數據源有兩種形式:封包的串流(數據包格式)或可編制索引的陣列(著色器資源)。
- 頂點和著色器資源會流入基本類型,您可以放大。
- 基本圖元和著色器資源會傳遞至像素作業。
Direct3D 計算著色器
使用 Direct3D 計算著色器,所有 GPU 處理器都會以平行方式執行。 因此,計算著色器的行為比河流更像池塘。