Открыть сервис

DirectX

DirectX — это набор программных интерфейсов (API), разработанный компанией Microsoft для операционных систем семейства Windows. DirectX предоставляет низкоуровневый доступ к аппаратному обеспечению компьютера, в первую очередь к графическим и звуковым устройствам, и служит связующим звеном между программным обеспечением (в частности, видеоиграми и мультимедийными приложениями) и оборудованием. Основная цель DirectX — унифицировать взаимодействие программ с различными моделями видеокарт, звуковых карт и других устройств, избавляя разработчиков от необходимости писать уникальный код для каждого конкретного производителя «железа».

История

Предпосылки создания

В середине 1990-х годов операционная система Windows 95 начинала активно использоваться для игр, однако сталкивалась с серьёзными ограничениями. Среда MS-DOS предоставляла программам прямой и быстрый доступ к оборудованию, в то время как Windows 95 из соображений стабильности и многозадачности ограничивала такой доступ. Разработчикам игр приходилось либо писать драйверы для каждого устройства вручную, либо использовать интерфейс Graphics Device Interface (GDI), который был не оптимизирован для высокопроизводительной графики. В результате многие игры по-прежнему запускались из MS-DOS.

Разработка и релиз первых версий

В 1994 году Microsoft начала работу над проектом под кодовым названием «Manhattan». Группа разработчиков во главе с Алексом Сент-Джоном (Alex St. John) и Крейгом Эйслером (Craig Eisler) стремилась создать среду, которая бы объединила возможности MS-DOS с удобством Windows. В 1995 году на выставке Game Developers Conference (GDC) был анонсирован DirectX 1.0, выпущенный в сентябре 1995 года как часть игрового пакета Windows 95 SDK. Первая версия включала DirectDraw (работа с 2D-графикой), DirectSound (аудио) и DirectInput (ввод).

Эволюция (DirectX 7–9)

Наибольшее распространение получили версии 7, 8 и 9, выпущенные в период с 1999 по 2002 год. DirectX 7 ввёл аппаратное ускорение трансформации и освещения (T&L), что позволило видеокартам выполнять геометрические расчёты вместо центрального процессора. DirectX 8 (2000) добавил программируемые вершинные и пиксельные шейдеры, что открыло дорогу для реалистичного освещения и сложных эффектов. DirectX 9 (2002) стал стандартом для игр эпохи 2000-х годов, поддерживая версию шейдеров 2.0 и 3.0, и оставался востребованным вплоть до середины 2010-х.

Современные версии (DirectX 10 и выше)

Состав и компоненты

DirectX представляет собой не единую библиотеку, а семейство API, каждое из которых отвечает за определённый тип взаимодействия с оборудованием:

Архитектура и принцип работы

Слои абстракции

DirectX работает по принципу «комиссионер — драйвер — оборудование». Приложение вызывает функции DirectX, которые через системный компонент (например, dxgi.dll, d3d11.dll) передают запрос драйверу видеокарты. Драйвер, написанный производителем оборудования, переводит команды в инструкции, понятные GPU. Таким образом, DirectX скрывает от разработчика различия в аппаратной архитектуре.

Программный рендеринг

Если аппаратного ускорения для определённой операции нет (например, отсутствует поддержка шейдеров), DirectX может выполнить вычисления на центральном процессоре в программном режиме. Однако производительность при этом существенно ниже, и для современных 3D-игр такой режим считается неработоспособным.

Модели драйверов

Версии DirectX и их совместимость

Версия DirectXРелизОперационная система (основная поддержка)Ключевые нововведения
1.01995Windows 95Первый релиз (DirectDraw, DirectSound, DirectInput)
2.0/3.01996Windows 95/NTУлучшенная 3D-поддержка, DirectPlay
7.01999Windows 98/Me/2000T&L, аппаратное ускорение геометрии
8.0/8.12000Windows 98/Me/2000/XPПрограммируемые шейдеры версий 1.0–1.4
9.0c2004Windows XP, Windows Server 2003Шейдеры 2.0/3.0, улучшенная поддержка HDR
102006Windows Vista (только)Унифицированная шейдерная архитектура
112009Windows 7, 8, 10, 11Тесселяция, многопоточность, Compute Shaders
122015Windows 10, 11, Xbox OneНизкоуровневый доступ, многопоточная работа

Применение

Основная область применения DirectX — видеоигры. Подавляющее большинство AAA-проектов для Windows используют Direct3D для рендеринга. Кроме того, DirectX применяется в:

Критика и альтернативы

Критика

Альтернативы

Интересные факты

Источники

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →