Оглавление [Скрыть]
- 1 Direct3D
- 1.1 История и развитие Direct3D
- 1.2 Основные функции и возможности
- 1.3 Эволюция и обновления
- 1.4 Конкуренты и совместимость
- 1.5 История и развитие
- 1.6 Основные версии и обновления
- 1.7 Direct3D 8
- 1.8 Direct3D 9
- 1.9 Direct3D 9Ex
- 1.10 Direct3D 10
- 1.11 Direct3D 10.1
- 1.12 Direct3D 11
- 1.13 Direct3D 11 и уровни функций
- 1.14 Direct3D 11.1 и Direct3D 11.2
- 1.15 Direct3D 11.X и Direct3D 11.3
- 1.16 Direct3D 11.4 и Direct3D 12
- 1.17 Новые функции Direct3D 12
- 1.18 Объекты состояния конвейера и корневые подписи
- 1.19 Корневые сигнатуры и корневые параметры
- 1.20 Передача команд в Direct3D 11 и 12
- 1.21 Кучи дескрипторов и таблицы в Direct3D 12
- 1.22 Поддержка нескольких адаптеров в Direct3D 12
- 1.23 Обновления Direct3D 12
- 1.24 Архитектура Direct3D
- 1.25 Трубопровод рендеринга Direct3D 11
- 1.26 Уровни характеристик в Direct3D
- 1.27 Direct3D 10 и 10.1
- 1.28 Direct3D 11 и 12
- 1.29 Уровни функций
- 1.30 Shader Model 6.0
- 1.31 Многопоточность
- 1.32 Direct3D Mobile
- 1.33 Альтернативные реализации
- 1.34 Сопутствующие инструменты
- 1.35 Удаление DXUT из Windows SDK 8.0
- 1.36 Связанные ресурсы
- 1.37 Рекомендации
- 1.38 Полный текст статьи:
- 2 Директ3D
Direct3D
-
История и развитие Direct3D
- Direct3D — графический API для Microsoft Windows, часть DirectX.
- Используется для рендеринга 3D-графики в приложениях с высокой производительностью.
- Использует аппаратное ускорение для ускорения рендеринга.
-
Основные функции и возможности
- Включает Z-буферизацию, W-буферизацию, буферизацию трафаретов и другие графические возможности.
- Поддерживает программируемые шейдеры и эффекты.
- Интегрируется с другими технологиями DirectX для видеомэппинга и 2D-рендеринга.
-
Эволюция и обновления
- Direct3D 8.0 заменил DirectDraw и взял на себя рендеринг 2D-графики.
- Direct3D 9.0 и 10.0 добавили новые шейдерные модели и улучшили производительность.
- Direct3D 11.0 и 12.0 добавили новые функции, такие как тесселяция и трассировка лучей.
-
Конкуренты и совместимость
- Основной конкурент — OpenGL от Khronos.
- Direct3D доступен для Windows 95 и выше, используется в консольных системах Xbox.
- Уровень совместимости Wine включает реализацию Direct3D.
-
История и развитие
- Основан в 1992 году компанией RenderMorphics.
- Microsoft купила RenderMorphics в 1995 году и начала разработку Direct3D.
- Direct3D изначально поддерживал два режима: немедленный и сохраненный.
-
Основные версии и обновления
- Direct3D 2.0 и 3.0: поддержка немедленного режима и сохраненного режима.
- Direct3D 4.0: отменен.
- Direct3D 5.0: добавлен API DrawPrimitive, метод SetRenderTarget.
- Direct3D 6.0: поддержка мультитекстуры, буферов трафаретов, оптимизированные геометрические конвейеры.
- Direct3D 7.0: формат текстур .dds, поддержка аппаратного ускорения transform и lighting.
- Direct3D 8.0: программируемые шейдеры, исключение DirectDraw.
- Direct3D 9.0: модель шейдеров 2.0, поддержка H.264.
- Direct3D 10.0: модель шейдеров 4.0, поддержка DXVA 2.0.
- Direct3D 11.0: модель шейдеров 5.0, тесселяция, многопоточный рендеринг.
- Direct3D 12.0: модель шейдеров 5.1 и 6.0, трассировка лучей.
-
Direct3D 8
- Вершинные шейдеры
- Пиксельные шейдеры
- Туман
- Отображение рельефов и текстур
-
Direct3D 9
- Новая версия языка шейдеров высокого уровня
- Поддержка форматов текстур с плавающей запятой
- Множественные цели рендеринга
- Многоэлементные текстуры
- Поиск текстур в вершинном шейдере
- Методы буферизации трафаретов
-
Direct3D 9Ex
- Расширение для Windows Vista
- Поддержка Windows Display Driver Model
- Виртуализация графической памяти
- Прерывание и планирование графических операций
- Совместное использование поверхностей DirectX между процессами
-
Direct3D 10
- Обновленная шейдерная модель 4.0
- Возможность прерывания работы шейдерных программ
- Этап геометрического шейдирования
- Отмена поддержки API retained mode
- Устранение “битов возможностей”
- Поддержка мультисэмплирования
- Полная интеграция с HLSL
- Многоуровневые слои среды выполнения
- Поддержка создания экземпляров 2.0
-
Direct3D 10.1
- Улучшенный мультисэмплинг
- Улучшенное поведение при отбраковке
- Независимые режимы наложения
- Увеличенная пропускная способность конвейерного этапа
- Поддержка TextureCubeArrays
- Обязательная 32-разрядная фильтрация с плавающей запятой
- Поддержка 4x MSAA
-
Direct3D 11
- Выпущен как часть Windows 7
- Поддержка новых функций
- Поддержка новых форматов текстур
- Поддержка новых шейдерных моделей
-
Direct3D 11 и уровни функций
- Direct3D 11 поддерживает оборудование и драйверы Direct3D 9 и 10.x через уровни функций.
- Уровни функций позволяют унифицировать конвейер рендеринга и использовать улучшения API.
- Direct3D 11.0 включает поддержку шейдерной модели 5.0 и новые форматы сжатия текстур.
-
Direct3D 11.1 и Direct3D 11.2
- Direct3D 11.1 поддерживает DXGI 1.2 и включает трассировку шейдеров и новые функции.
- Direct3D 11.2 требует драйверы DXGI 1.3 и включает модификацию и компоновку шейдеров.
-
Direct3D 11.X и Direct3D 11.3
- Direct3D 11.X работает на Xbox One и включает пакеты рисования.
- Direct3D 11.3 выпущен с Windows 10 и включает новые функции рендеринга.
-
Direct3D 11.4 и Direct3D 12
- Direct3D 11.4 улучшает поддержку внешних графических адаптеров и DXGI 1.5.
- Direct3D 12 обеспечивает более низкий уровень аппаратной абстракции и новые функции, такие как косвенное рисование и таблицы дескрипторов.
-
Новые функции Direct3D 12
- Шейдерная модель 5.1 и ресурсы с разбивкой по томам.
- Заданное шейдером исходное значение шаблона и типизированная загрузка БПЛА.
- Консервативная растеризация и упорядоченные виды с помощью растеризатора.
- Дополнительные режимы наложения и программируемое наложение.
- Эффективная прозрачность, не зависящая от порядка, с помощью БПЛА с упорядочением пикселей.
-
Объекты состояния конвейера и корневые подписи
- Объекты состояния конвейера упрощают процесс изменения состояний конвейера.
- Корневые подписи определяют расположение ресурсов, используемых шейдерами.
-
Корневые сигнатуры и корневые параметры
- Корневые сигнатуры определяют типы данных, используемые шейдерами, но не фактическую память или данные.
- Корневые параметры — это записи в корневой подписи, значения которых изменяются во время выполнения.
-
Передача команд в Direct3D 11 и 12
- В Direct3D 11 команды передаются последовательно, что является узким местом.
- В Direct3D 12 команды передаются в виде списков команд, что позволяет выполнять команды за один процесс.
-
Кучи дескрипторов и таблицы в Direct3D 12
- Кучи дескрипторов и таблицы позволяют распределять часто используемые ресурсы в таблицах для быстрого доступа.
- Это повышает производительность, но требует больше работы от разработчиков.
-
Поддержка нескольких адаптеров в Direct3D 12
- Direct3D 12 поддерживает явную многопоточность и взаимодействие между процессами.
- Это позволяет использовать преимущества современных массивно-параллельных графических процессоров.
-
Обновления Direct3D 12
- Direct3D 12 версии 1607 поддерживает конструкции для явной многопоточности и взаимодействие между процессами.
- Direct3D 12 версии 1703 поддерживает Shader Model 6.0 и DXIL.
- Direct3D 12 версии 1809 добавляет поддержку трассировки лучей DirectX.
- Direct3D 12 версии 1903 поддерживает DirectML и NPU.
- Direct3D 12 версии 2004 поддерживает DirectX 12 Ultimate и улучшенное распределение памяти.
- Direct3D 12 версии 21H2 поддерживает DirectStorage.
-
Архитектура Direct3D
- Direct3D — это компонент подсистемы Microsoft DirectX API, обеспечивающий низкоуровневый интерфейс для 3D-функций видеокарты.
- Direct3D содержит устройства, ресурсы и цепочки подкачки.
- Устройства отвечают за рендеринг 3D-сцены и предоставляют интерфейс с различными возможностями рендеринга.
- Ресурсы имеют атрибуты типа, пула, формата и использования.
- Direct3D реализует два режима отображения: полноэкранный и оконный.
-
Трубопровод рендеринга Direct3D 11
- Процесс преобразования вершин, текстур и буферов в изображение на экране описывается как конвейер рендеринга.
- Этапы конвейера включают ввод-ассемблер, вершинный шейдер, Hull-шейдер, тесселятор, доменный шейдер, геометрический шейдер, потоковый вывод, растеризатор, пиксельный шейдер и вывод-объединение.
- Этапы конвейера полностью программируются, многие из них необязательны.
-
Уровни характеристик в Direct3D
- В Direct3D с 5 по 9 поддержка новых аппаратных возможностей была необязательной, что усложняло графическое программирование.
-
Direct3D 10 и 10.1
- Direct3D 10 упростила требования к оборудованию, добавив несколько новых функций.
- Direct3D 10.1 добавила новые обязательные требования, объединив их в уровни функций.
-
Direct3D 11 и 12
- Direct3D 11 добавила поддержку нового оборудования и новые уровни функций.
- Direct3D 12 представила новые уровни функций и обновленную модель привязки ресурсов.
-
Уровни функций
- Уровни функций инкапсулируют основные, незначительные и ранее необязательные функции.
- Каждый верхний уровень является дополнением к нижнему уровню.
-
Shader Model 6.0
- Выпущена с Windows 10 Creators Update.
- Включает новые функции, такие как метакоманды и трассировка лучей.
-
Многопоточность
- Direct3D 11 поддерживает многопоточность.
- WDDM 2.0 и DirectX 12 обеспечивают полностью многопоточные вызовы отрисовки.
-
Direct3D Mobile
- Direct3D Mobile занимает меньший объем памяти и поддерживается Windows CE.
-
Альтернативные реализации
- WineD3D, vkd3d, D9VK, D8VK и Gallium Nine предоставляют альтернативные реализации Direct3D API.
-
Сопутствующие инструменты
- D3DX предоставляет математические и геометрические функции.
- DXUT помогает программистам выполнять рутинные задачи.
-
Удаление DXUT из Windows SDK 8.0
- DXUT были удалены из Windows SDK 8.0.
- Теперь они распространяются в виде исходного кода через CodePlex.
-
Связанные ресурсы
- Список API-интерфейсов для 3D-рендеринга.
- Список библиотек 3D-графики.
- Высокоуровневый язык шейдеров.
- Шейдер.
- DirectX – набор API, в которых реализован Direct3D.
- Прямой рисунок.
- 3D компьютерная графика.
-
Рекомендации
- Внешние ссылки.
- Веб-сайт DirectX.
- MSDN: Поддержка DirectX для графики и игр.
- DirectX 10: Будущее компьютерных игр, техническая статья, рассматривающая новые возможности DirectX 10 и их влияние на компьютерные игры.