Пошаговое руководство: перенос простого приложения Direct3D 9 в DirectX 11 и 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