Дорожная карта для классических приложений DirectX

Ниже приведены основные ресурсы, которые помогут вам приступить к работе с DirectX и C++ для разработки графических классических приложений, таких как игры. Это не полный список всех функций или доступных ресурсов.

Начало работы

Ниже приведены некоторые ключевые темы. Настройка проекта DirectX, самостоятельное подключение к Windows и примеры приложений.

Раздел Описание
Создание первого приложения для Windows с помощью DirectX Используйте это базовое руководство, чтобы приступить к разработке приложений DirectX, а затем используйте стратегию, чтобы продолжить изучение DirectX.
Начало работы с DirectX для Windows Ознакомьтесь с действиями, которые необходимо предпринять, чтобы начать разработку игры с помощью DirectX и C++.
Полный код для платформы DirectX Получите код для базовой платформы отрисовки DirectX.
Использование Direct3D 11 В этом разделе показано, как использовать API Microsoft Direct3D 11 для выполнения нескольких распространенных задач.
Руководство по программированию для Direct3D 11 Руководство по программированию содержит сведения о том, как использовать программируемый конвейер Microsoft Direct3D 11 для создания трехмерной графики в реальном времени для классических приложений.
Средства для графики DirectX Документация по средствам, используемым для поддержки разработки DirectX.
Новые возможности Direct3D 11 Разбивка всех функций, добавленных в последних версиях DirectX и Direct3D (в настоящее время 11.2).
Скачайте Visual Studio 2013 Для создания игр из Магазина Windows необходимо иметь Visual Studio Express 2013 для Windows Desktop. Обзор Visual Studio см. в статье Разработка приложений Магазина Windows с помощью Visual Studio 2012. Сведения о новых функциях Visual Studio см. в статье Основные сведения о продуктах для Visual Studio 2013.
Где находится пакет SDK для DirectX? Содержит рекомендации для разработчиков, которые хотят перенести свои проекты DirectX в Microsoft Visual Studio.

Примеры приложений

Раздел Описание
Пример win32 для Руководства по Direct3D Базовый пример учебника по Direct3D для настольных компьютеров.
Пример отрисовки видео DirectX Пример, демонстрирующий настраиваемую отрисовку видео с помощью Direct3D.

Обзор основных понятий Direct3D 11

Раздел Описание
Графический конвейер Охватывает базовый графический конвейер Direct3D 11.
Отрисовка Охватывает модели отрисовки Direct3D, компоненты, шейдеры и поток вызовов API.
Ресурсы Охватывает "ресурсы" Direct3D, такие как буферы и другие типы ресурсов GPU.
Эффекты Описание создания и эффектов с поддержкой нескольких шейдеров Direct3D.
Практическое руководство. Создание цепочки буферов Создание цепочки буферов, используемой для рисования пикселей в области экрана.
Практическое руководство. Создание устройства и непосредственного контекста Как создать абстракцию устройства Direct3D и непосредственный контекст для рисования.
Практическое руководство. Создание буфера вершин Как создать простой список вершин сетки для обработки с помощью GPU.
Практическое руководство. Создание буфера индекса Как создать буфер индекса, позволяющий шейдеру вершин обходить порядок вершин в сетке.
Практическое руководство. Создание буфера констант Как передавать постоянные (однородные) данные между ЦП и GPU во время отрисовки.
Практическое руководство. Создание текстуры Как создать текстуру или другой ресурс буфера, который можно использовать для выборки с помощью GPU.
Практическое руководство. Инициализация текстуры из файла Как загрузить текстуру из файла и обработать ее для использования конвейером шейдера.
Практическое руководство. Компиляция шейдера Как скомпилировать шейдер для использования в графическом приложении.

API графики

Раздел Описание
Direct3D 11 Документация по основным API для виртуализации GPU и его ресурсов, а также для рисования графики с помощью унифицированной модели шейдеров.
Direct3D HLSL Справочная документация по High-Level языку шейдеров, синтаксису и правилам, используемым для определения программ шейдеров, выполняемых как часть графического конвейера в единой модели шейдеров.
Графический интерфейс DirectX (DXGI) Документация по низкоуровневые API, используемые для получения интерфейса GPU и системных ресурсов.
Direct2D Документация по API Direct2D, которые поддерживают рисование двухd-примитивов. Как правило, Direct2D используется для пользовательских интерфейсов, обработки изображений и пакетной обработки, а также для простых игр.
DirectWrite Документация по API DirectWrite, которые поддерживают настраиваемую отрисовку и масштабирование шрифтов.
Компонент обработки изображений Windows (WIC) Документация по API WIC, которые используются для чтения и управления различными форматами растровых изображений.
Поверхности DirectDraw (DDS) для текстур Документация по API DDS, которые используются для сжатия и распаковки двухd текстур в сочетании с API WIC.
DirectXMath Документация по API DirectXMath, которые поддерживают Direct3D с набором типов и функций, подходящих для разработки трехмерной графики в реальном времени. (Прежнее название — XNAMath.)
Directcompute Документация по API DirectCompute, используемым для вычислительных или общих функциональных возможностей шейдеров.

API аудио, мультимедиа и ввода

Раздел Описание
Руководство по программированию для XAudio2 Узел верхнего уровня для концептуальной документации по API аудио XAudio2.
Справочник по программированию в XAudio2 Узел верхнего уровня для справочной документации по API аудио XAudio2.
Руководство по программированию XInput Узел верхнего уровня для концептуальной документации по API контроллера XInput.
Справочник по программированию XInput Узел верхнего уровня для справочной документации по API контроллера XInput.
Media Foundation Узел верхнего уровня для документации по API воспроизведения мультимедиа (аудио и видео) Media Foundation (MF). Как правило, MF используется в играх для воспроизведения звуковых дорожек, а XAudio2 — для динамического звука.

Перенос в DirectX 11

Раздел Описание
Переход на Direct3D 11 Основные рекомендации по переносу базы кода DirectX 9 в DirectX 11.
Методы двойного использования кодирования для игр Подробная запись блога о разработке для уровней компонентов DirectX 9_* и DirectX 11_* в одном приложении.
Реализация теневых буферов для Уровня компонентов Direct3D 9 Руководство по реализации теневых карт на уровне компонентов DirectX 9_*.

Работа с C++

Если вы являетесь старой рукой с C++ на платформах Windows, все может выглядеть немного иначе. Ниже приведены некоторые указатели на разделы, которые помогут вам определить разницу.

Примечание

Некоторые из этих разделов помогут вам поддерживать приложение C++/CX. Однако в новых приложениях мы рекомендуем использовать C++/WinRT. C++/WinRT — это полностью стандартная проекция языка C++17 для API среды выполнения Windows (WinRT), реализованная как библиотека на основе файлов заголовков и предназначенная для предоставления вам первоклассного доступа к современным интерфейсам API Windows.

Раздел Описание
Справочник по языку Visual C++ (C++/CX) Страница высокого уровня, которая ссылается на содержимое, связанное с C++.
Краткий справочник (среда выполнения Windows и Visual C++) Таблица с краткими сведениями об операторах и ключевых словах расширений компонентов Visual C++ (C++/CX).
Система типов (C++/CX) Справочные материалы по типам, поддерживаемым C++/CX.
Пространства имен (C++/CX) Справочные материалы по пространствам имен, содержащим типы C++, которые можно использовать в приложениях Магазина Windows.
Раздел Описание
Асинхронное программирование (DirectX и C++) Узнайте об асинхронном и многопотоковом программировании для приложений и игр DirectX.
Асинхронное программирование на языке C++ Описание основных способов использования класса задач для использования среда выполнения Windows асинхронных методов.
Класс task (среда выполнения с параллелизмом) Справочная документация по классу задач.
Параллелизм задач (среда выполнения с параллелизмом) Подробное обсуждение класса задач и его использования.

Дополнительные полезные библиотеки для программирования на C++ в Windows

Раздел Описание
Стандартная библиотека шаблонов C++ среда выполнения Windows типы хорошо бывают со стандартными библиотеками шаблонов. Большинство приложений C++ для Магазина Windows используют коллекции и алгоритмы стандартной библиотеки шаблонов, за исключением границЫ ABI.
Библиотека параллельных шаблонов PPL предоставляет алгоритмы и типы, упрощающие параллелизм задач и параллелизм данных на ЦП.
C++ Accelerated Massive Parallelism (C++ AMP) C++ AMP предоставляет доступ к GPU для параллелизма данных общего назначения на видеоадаптерах, поддерживающих DirectX 11.

Блоги и другие ресурсы

Раздел Описание
Блог об играх для Windows и DirectX Регулярно обновляемый блог на основе ключевого участник разработки DirectX и отличного ресурса для разработчиков DirectX.
Блог разработчиков Windows DirectX Официальный блог Windows DirectX.
Блог Шон Харгрив (Shawn Hargreave)) Блог разработчика из другого уважаемого участник разработки Для Windows DirectX.
Набор инструментов DirectX Пакет инструментов DirectX (DxTK), который содержит ряд полезных API-интерфейсов поддержки для загрузки сеток, воспроизведения звуков и других распространенных вариантов поведения.
Библиотеки обработки текстур DirectXTex Библиотека обработки текстур DirectX (DxTEX), которая содержит интерфейсы API поддержки для обработки текстур, а также сжатия и распаковки.