Пошаговое руководство: реализация объемных теней с помощью буферов глубины в Direct3D 11Walkthrough: Implement shadow volumes using depth buffers in Direct3D 11

В этом пошаговом руководстве демонстрируется отрисовка объемных теней с помощью карт глубины теней при использовании Direct3D 11 на устройствах, соответствующих всем уровням компонентов Direct3D.This walkthrough demonstrates how to render shadow volumes using depth maps, using Direct3D 11 on devices of all Direct3D feature levels.

РазделTopic ОписаниеDescription

Создание ресурсов устройства буфера глубиныCreate depth buffer device resources

Научитесь создавать ресурсы устройств Direct3D, необходимые для поддержки тестирования глубины для теневых томов.Learn how to create the Direct3D device resources necessary to support depth testing for shadow volumes.

Прорисовка карты теней в буфер глубиныRender the shadow map to the depth buffer

Выполняя прорисовку с точки зрения освещения, вы можете создать двумерную карту глубин, представляющую объемную тень.Render from the point of view of the light to create a two-dimensional depth map representing the shadow volume.

Прорисовка сцены с проверкой глубиныRender the scene with depth testing

Создание эффекта тени путем добавления проверки глубины в шейдер вершин (или геометрии) и в шейдер пикселей.Create a shadow effect by adding depth testing to your vertex (or geometry) shader and your pixel shader.

Поддержка карт теней на различном оборудованииSupport shadow maps on a range of hardware

Более высокое качество отображения теней на быстрых устройствах и быстрое отображение на менее мощных устройствах.Render higher-fidelity shadows on faster devices and faster shadows on less powerful devices.

 

Перенос приложения наложения теней в Direct3D 9 для рабочего столаShadow mapping application to Direct3D 9 desktop porting

Функция сравнения глубины Windows 8 Адде d для уровня функций 9 _ 1 и 9 _ 3.Windows 8 adde d depth comparison functionality to feature level 9_1 and 9_3. Теперь код рендеринга с объемными тенями можно переносить в DirectX 11, и обработчик Direct3D 11 будет совместим с устройствами функционального уровня 9.Now you can migrate rendering code with shadow volumes to DirectX 11, and the Direct3D 11 renderer will be downlevel compatible with feature level 9 devices. Это пошаговое руководство показывает, как любое приложение или игра Direct3D 11 могут реализовать традиционные объемные тени, используя тестирование глубины.This walkthrough shows how any Direct3D 11 app or game can implement traditional shadow volumes using depth testing. Код включает следующий процесс:The code covers the following process:

  1. Создание ресурсов устройств Direct3D для наложения теней.Creating Direct3D device resources for shadow mapping.
  2. Добавление этапа отрисовки для создания карты глубины теней.Adding a rendering pass to create the depth map.
  3. Добавление тестирования глубины в главный этап отрисовки.Adding depth testing to the main rendering pass.
  4. Реализация необходимого кода шейдера.Implementing the necessary shader code.
  5. Параметры быстрой отрисовки на оборудовании прежних версий.Options for fast rendering on downlevel hardware.

После завершения этого пошагового руководства вы должны быть знакомы с тем, как реализовать базовый совместимый метод создания теневого тома в Direct3D 11, совместимый с уровнем функций 9 _ 1 и выше.Upon completing this walkthrough, you should be familiar with how to implement a basic compatible shadow volume technique in Direct3D 11 that's compatible with feature level 9_1 and above.

Предварительные требованияPrerequisites

Вам нужно подготовить среду для разработки игр универсальной платформы Windows (UWP) с использованием DirectX.You should Prepare your dev environment for Universal Windows Platform (UWP) DirectX game development. Шаблон пока не нужен, но чтобы создать пример кода для этого руководства, потребуется Microsoft Visual Studio 2015.You don't need a template yet, but you'll need Microsoft Visual Studio 2015 to build the code sample for this walkthrough.

Direct3DDirect3D

Технические статьи по наложению тенейShadow mapping technical articles