Desktop 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 的文档,支持绘制 2D 基元。 通常,Direct2D 用于自定义用户界面、图像处理和批处理以及简单游戏。 |
DirectWrite | 支持自定义字体呈现和缩放的 DirectWrite API 的文档。 |
Windows 图像处理组件 (WIC) | WIC API 的文档,用于读取和管理不同的位图图像格式。 |
适用于纹理的 DirectDDS (DDS) | DDS API 的文档,这些 API 与 WIC API 一起用于 2D 纹理压缩和解压缩。 |
DirectXMath | DirectXMath API 的文档,这些 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 运行时的基本方法。 |
task 类(并发运行时) | 任务类的参考文档。 |
任务并行度(并发运行时) | 深入讨论任务类及其用法。 |
适用于 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 博客。 |
肖恩·哈格里夫的 DirectX 博客) | 另一个受人尊敬的 Windows DirectX 开发参与者的开发博客。 |
DirectX 工具包 | DirectX 工具包 (DxTK) ,其中包含许多用于加载网格、播放声音和其他常见行为的有用支持 API。 |
DirectXTex 纹理处理库 | DirectX 纹理处理库 (DxTEX) ,其中包含纹理处理和压缩/解压缩的支持 API。 |