桌面 DirectX 應用程式的藍圖
以下是可協助您開始使用 DirectX 和 C++ 開發圖形密集型傳統型應用程式的重要資源,例如遊戲。 這不是所有功能或可用資源的完整清單。
開始使用
以下是一些重要主題。 設定 DirectX 專案、將自己加入 Windows,以及範例應用程式。
主題 | 描述 |
---|---|
使用 DirectX 建立您的第一個 Windows 應用程式 | 使用此基本教學課程來開始使用 DirectX 應用程式開發,然後使用藍圖繼續探索 DirectX。 |
開始使用適用于 Windows 的 DirectX | 檢閱開始使用 DirectX 和 C++ 開始開發遊戲所需的步驟。 |
DirectX 架構的完整程式碼 | 取得基本 DirectX 轉譯架構的程式碼。 |
如何使用 Direct3D 11 | 本節示範如何使用 Microsoft Direct3D 11 API 來完成數個常見工作。 |
Direct3D 11 的程式設計指南 | 程式設計指南包含如何使用 Microsoft Direct3D 11 可程式化管線來建立桌面應用程式的即時 3D 圖形的相關資訊。 |
DirectX 圖形的工具 | 用於支援 DirectX 開發之工具的檔。 |
Direct3D 11 的新功能 | 最新版 DirectX 和 Direct3D 中新增的所有功能明細, (目前為 11.2) 。 |
下載 Visual Studio 2013 | 您必須有Visual Studio Express 2013 for Windows Desktop才能建立 Windows 市集遊戲。 如需 Visual Studio 的導覽,請參閱 使用 Visual Studio 2012 開發 Windows 市集應用程式。 如需 Visual Studio 新功能的相關資訊,請參閱Visual Studio 2013 的產品重點。 |
DirectX SDK 在哪裡? | 包含想要將其 DirectX 專案帶入 Microsoft Visual Studio 的開發人員指引。 |
範例應用程式
主題 | 描述 |
---|---|
Direct3D 教學課程 Win32 範例 | 基本桌面 Direct3D 教學課程範例。 |
DirectX 影片轉譯範例 | 示範使用 Direct3D 進行自訂視訊轉譯的範例。 |
檢閱主要 Direct3D 11 概念
主題 | 描述 |
---|---|
圖形管線 | 涵蓋基本的 Direct3D 11 圖形管線。 |
轉譯 | 涵蓋 Direct3D 轉譯模型、元件、著色器和 API 呼叫流程。 |
資源 | 涵蓋 Direct3D「資源」,例如緩衝區和其他 GPU 資源類型。 |
效果 | 涵蓋 Direct3D 多重著色器實例和效果。 |
如何:建立交換鏈結 | 如何建立用來將圖元繪製到螢幕區域的交換鏈結。 |
如何:建立裝置和立即內容 | 如何建立 Direct3D 裝置抽象概念和繪圖的立即內容。 |
如何:建立頂點緩衝區 | 如何建立簡單的網格頂點清單,以供 GPU 處理。 |
如何:建立索引緩衝區 | 如何建立索引緩衝區,讓頂點著色器能夠逐步解說網格中的頂點順序。 |
如何:建立常數緩衝區 | 如何在轉譯期間傳遞 CPU 與 GPU 之間的一致 (一) 資料。 |
如何:建立紋理 | 如何建立可由 GPU 取樣的紋理或其他緩衝區資源。 |
如何:從檔案初始化紋理 | 如何從檔案載入紋理,並處理它以供著色器管線使用。 |
如何:編譯著色器 | 如何編譯著色器以在圖形應用程式中使用。 |
圖形 API
主題 | 描述 |
---|---|
Direct3D 11 | 適用于 GPU 及其資源虛擬化的核心 API 檔,以及使用統一著色器模型繪製圖形。 |
Direct3D HLSL | High-Level著色器語言的參考檔、用來定義在統一著色器模型中做為圖形管線一部分執行的著色器程式語法和規則。 |
DirectX 圖形介面 (DXGI) | 用來取得 GPU 介面和系統資源的低階 API 檔。 |
Direct2D | Direct2D API 的檔,其支援 2D 基本類型繪圖。 一般而言,Direct2D 用於自訂使用者介面、影像處理和批次處理,以及簡單的遊戲。 |
DirectWrite | 支援自訂字型轉譯和縮放的 DirectWrite API 檔。 |
Windows 影像處理元件 (WIC) | WIC API 的檔,用於讀取和管理不同的點陣圖影像格式。 |
適用于紋理的 DirectDraw Surface (DDS) | DDS API 的檔,用於 2D 紋理壓縮和解壓縮與 WIC API。 |
DirectXMath | DirectXMath API 的檔,其支援 Direct3D 搭配一組適用于 3D 即時圖形開發的類型和函式。 (先前稱為 XNAMath.) |
DirectCompute | DirectCompute API 的檔,用於計算或一般使用著色器功能。 |
音訊、媒體和輸入 API
主題 | 描述 |
---|---|
XAudio2 程式設計指南 | XAudio2 音訊 API 概念檔的最上層節點。 |
XAudio2 程式設計參考 | XAudio2 音訊 API 參考檔的最上層節點。 |
XInput 程式設計手冊 | XInput 控制器 API 概念檔的最上層節點。 |
XInput 程式設計參考 | XInput 控制器 API 參考檔的最上層節點。 |
媒體基礎 | 媒體基礎 (MF) 媒體 (音訊/視訊) 播放 API 檔的最上層節點。 一般而言,MF 用於音效播放的遊戲,而 XAudio2 則用於動態音訊。 |
移植到 DirectX 11
主題 | 描述 |
---|---|
移轉至 Direct3D 11 | 將 DirectX 9 程式碼基底移至 DirectX 11 的基本指引。 |
遊戲的雙重使用編碼技術 | 針對單一應用程式中的 DirectX 9_* 和 DirectX 11_* 功能層級進行開發的詳細部落格文章。 |
實作 Direct3D 功能層級 9 的陰影緩衝區 | 在 DirectX 功能層級 9_*下實作陰影圖的指引。 |
使用 C++
如果您是在 Windows 平臺上使用 C++ 的舊手,則看起來可能有點不同。 以下是一些主題的指標,可協助您取得差異的控制碼。
注意
其中一些主題可協助您維護 C++/CX 應用程式。 但我們建議您將 C++/WinRT 用於新的應用程式。 C++/WinRT 是完全標準現代的 Windows 執行階段 (WinRT) API 的 C++17 語言投影,僅實作為標頭檔案式程式庫,以及設計用來提供您現代化 Windows API 的第一級存取。
主題 | 描述 |
---|---|
Visual C++ 語言參考 (C++/CX) | 連結至 C++ 相關內容的高階頁面。 |
快速參考 (Windows 執行階段和 Visual C++) | 資料表,提供 Visual C++ 元件延伸模組的快速資訊, (C++/CX) 運算子和關鍵字。 |
輸入系統 (C++/CX) | C++/CX 所支援之類型的參考內容。 |
命名空間 (C++/CX) | 包含可在 Windows 市集應用程式中使用的 C++特定類型的命名空間參考內容。 |
主題 | 描述 |
---|---|
DirectX 和 C++ (非同步程式設計) | 瞭解 DirectX 應用程式和遊戲的非同步和多執行緒程式設計。 |
C++ 中的非同步程式設計 | 描述使用工作類別來取用非同步方法Windows 執行階段的基本方式。 |
工作類別 (並行執行時間) | 工作類別的參考檔。 |
工作平行處理原則 (並行執行時間) | 有關工作類別及其使用方式的深入討論。 |
適用于 Windows C++ 程式設計的其他實用程式庫
主題 | 描述 |
---|---|
C++ 標準範本程式庫 | Windows 執行階段類型與標準範本程式庫類型搭配運作良好。 大部分的 C++ Windows 市集應用程式都使用標準範本程式庫集合和演算法,但 ABI 界限除外。 |
平行模式程式庫 | PPL 提供演算法和類型,可簡化 CPU 上的工作平行處理原則和資料平行處理原則。 |
C++ Accelerated Massive Parallelism (C++ AMP) | C++ AMP支援 DirectX 11 的視訊卡上,提供 GPU 的一般用途資料平行處理原則存取。 |
部落格和其他資源
主題 | 描述 |
---|---|
適用于 Windows 和 DirectX 的遊戲部落格 | 來自重要 DirectX 開發人員參與者的定期更新部落格,以及適用于 DirectX 開發人員的全向絕佳資源。 |
Windows DirectX 開發人員部落格 | 官方 Windows DirectX 部落格。 |
Shawn Hargreave 的 DirectX 部落格) | 另一個妥善遵守 Windows DirectX 開發人員參與者的開發人員部落格。 |
DirectX 工具組 | DirectX Tool Kit (DxTK) ,其中包含一些實用的支援 API,可用於載入網格、播放音效和其他常見行為。 |
DirectXTex 紋理處理程式庫 | DirectX 紋理處理程式庫 (DxTEX) ,其中包含紋理處理和壓縮/解壓縮的支援 API。 |