操作实例:使用 Direct3D 11 中的深度缓冲区实现阴影卷

本操作实例演示如何使用深度映射呈现阴影卷,并在所有 Direct3D 功能级别的设备上使用 Direct3D 11。

主题 说明

创建深度缓冲区设备资源

了解如何创建支持阴影卷的深度测试所需的 Direct3D 设备资源。

将阴影映射呈现到深度缓冲区

从光线的角度呈现,以创建一个表示阴影卷的二维深度映射。

通过深度测试呈现场景

通过向顶点(或几何图形)着色器和像素着色器中添加深度测试来创建阴影效果。

在许多硬件上支持阴影图

在速度更快的设备上更高保真度地呈现阴影,在功能不够强大的设备上更快地呈现阴影。

 

阴影映射应用程序到 Direct3D 9 桌面的移植

Windows 8 为功能级别 9_1 和 9_3 添加了深度比较功能。 现在,你可以将具有阴影卷的呈现代码迁移到 DirectX 11,并且 Direct3D 11 呈现器将是与功能级别 9 设备兼容的下一级设备。 本操作实例介绍任何 Direct3D 11 应用或游戏如何使用深度测试实现传统的阴影卷。 代码包含以下过程:

  1. 为阴影映射创建 Direct3D 设备资源。
  2. 添加呈现传递以创建深度映射。
  3. 将深度测试添加到主呈现传递。
  4. 实现必需的着色器代码。
  5. 用于在下一级硬件上快速呈现的选项。

完成本操作实例之后,你应该会熟悉如何在与功能级别 9_1 以及更高功能级别兼容的 Direct3D 11 中实现基本的兼容阴影卷技术。

先决条件

应该准备通用 Windows 平台 (UWP) DirectX 游戏开发的开发人员环境。 目前,你还不需要模板,但需要使用 Microsoft Visual Studio 2015 为此操作实例生成代码示例。

Direct3D

阴影映射技术文章