演练:将简单的 Direct3D 9 应用移植到 DirectX 11 和通用 Windows 平台 (UWP)

此移植练习显示了如何将一个简单的呈现框架从 Direct3D 9 移植到 Direct3D 11 和通用 Windows 平台 (UWP)。

主题 说明

初始化 Direct3D 11

介绍如何将 Direct3D 9 初始化代码转换为 Direct3D 11,包括如何获取 Direct3D 设备和设备上下文的句柄以及如何使用 DXGI 设置交换链。

转换呈现框架

介绍如何将简单的呈现框架从 Direct3D 9 转换到 Direct3D 11,包括如何移植几何图形缓冲区、如何编译和加载 HLSL 着色器程序以及如何在 Direct3D 11 中实现呈现链。

移植游戏循环

介绍如何实现 UWP 游戏的窗口,以及如何显示游戏循环,包括如何构建 IFrameworkView 来控制全屏 CoreWindow

 

本主题介绍了执行以下同一基本图形任务的两种代码路径:显示旋转的顶点着色立方体。 在这两种情况下,该代码涉及以下流程:

  1. 创建 Direct3D 设备和交换链。
  2. 创建顶点缓冲区和索引缓冲区,用来表示彩色立方体网格。
  3. 创建用来将顶点转换为屏幕空间的顶点着色器和用来混合颜色值的像素着色器、编译着色器和加载着色器作为 Direct3D 资源。
  4. 实现渲染链并在屏幕上呈现绘制立方体。
  5. 创建窗口、开始主循环并关注窗口消息处理。

完成本演练后,你应当熟悉 Direct3D 9 和 Direct3D 11 之间的以下基本差异:

  • 分离设备、设备上下文和图形基础结构。
  • 编译着色器并在运行时加载着色器字节码的过程。
  • 如何为输入装配器 (IA) 阶段配置每顶点数据。
  • 如何使用 IFrameworkView 创建 CoreWindow 视图。

请注意,此演练使用 CoreWindow 进行简化,并不涉及 XAML 互操作。

先决条件

应该为 UWP DirectX 游戏开发准备开发人员环境。 尚不需要模板,但需要 Microsoft Visual Studio 2015 来加载此操作实例的代码示例。

访问移植概念和注意事项,以便更好地了解此演练中显示的 DirectX 11 和 UWP 编程概念。

Direct3D

Microsoft Store