Директ3D

Оглавление1 Direct3D1.1 История и развитие Direct3D1.2 Основные функции и возможности1.3 Эволюция и обновления1.4 Конкуренты и совместимость1.5 История и развитие1.6 Основные […]

Оглавление [Скрыть]

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 и их влияние на компьютерные игры.  

Полный текст статьи:

Директ3D

Оставьте комментарий