桌面 DirectX 应用的路线图

下面是帮助你开始使用 DirectX 和 C++开发图形密集型桌面应用(如游戏)的关键资源。 这不是所有功能或可用资源的综合列表。

入门

下面是一些关键主题。 设置 DirectX 项目、自行适应 Windows 和示例应用程序。

主题 描述
使用 DirectX 创建第一个 Windows 应用 使用此基本教程开始使用 DirectX 应用开发,然后使用路线图继续探索 DirectX。
DirectX for Windows 入门 查看开始使用 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 的文档,该 API 支持绘制 2D 基元。 通常,Direct2D 用于自定义用户界面、图像处理和批处理以及简单游戏。
DirectWrite DirectWrite API 的文档,支持自定义字体呈现和缩放。
Windows 映像组件(WIC) WIC API 的文档,用于读取和管理不同的位图图像格式。
纹理的 DirectDraw Surfaces (DDS) DDS API 的文档,这些 API 与 WIC API 结合使用,用于 2D 纹理压缩和解压缩。
DirectXMath DirectXMath API 的文档,它支持 Direct3D,其中包含一组适用于 3D 实时图形开发的类型和函数。 (前 XNAMath.
DirectCompute DirectCompute API 的文档,用于计算或常规使用着色器功能。

音频、媒体和输入 API

主题 描述
XAudio2 编程指南 XAudio2 音频 API 概念文档的顶级节点。
XAudio2 编程参考 XAudio2 音频 API 参考文档的顶级节点。
XInput 编程指南 XInput 控制器 API 概念文档的顶级节点。
XInput 编程参考 XInput 控制器 API 参考文档的顶级节点。
Media Foundation 媒体基础(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++加速大规模并行度(C++ AMP) C++ AMP 提供对支持 DirectX 11 的视频卡上的常规用途数据并行访问 GPU。

博客和其他资源

主题 描述
适用于 Windows 和 DirectX 的 游戏博客 主要 DirectX 开发参与者的定期更新博客,以及 DirectX 开发人员的全方位出色资源。
Windows DirectX 开发人员博客 官方 Windows DirectX 博客。
肖恩·哈格里夫的 DirectX 博客 另一个受人尊敬的 Windows DirectX 开发参与者的开发人员博客。
DirectX 工具包 DirectX 工具包 (DxTK),其中包含许多有用的支持 API,用于加载网格、播放声音和其他常见行为。
DirectXTex 纹理处理库 DirectX 纹理处理库 (DxTEX),其中包含用于纹理处理和压缩/解压缩的支持 API。