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

DirectX — набор API от Microsoft

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

История

Первая версия DirectX появилась в 1995 году вместе с выходом Windows 95. До её появления игры под MS-DOS работали напрямую с оборудованием, минуя операционную систему, что давало высокую производительность, но требовало от разработчиков написания отдельных драйверов под каждую видеокарту. С переходом на Windows приложения были вынуждены работать через слой абстракции операционной системы, что снижало быстродействие и мешало распространению игр на Windows.

Microsoft создала DirectX как ответ на технологию Glide и OpenGL, которые активно использовались в играх. Ключевая идея заключалась в том, чтобы предоставить разработчикам единый набор вызовов, работающих с любым совместимым оборудованием через соответствующие драйверы. В 1996 году вышла вторая версия, а в 1997-м — третья, закрепившая DirectX как стандарт игровой разработки на платформе Windows.

В дальнейшем версии DirectX выходили примерно ежегодно: DirectX 7 (2000) добавил поддержку аппаратного преобразования вершин, DirectX 8 (2000) представил шейдеры вершин и пикселей, DirectX 9 (2002) внедрил язык шейдеров Shader Model 3.0. DirectX 10 (2006) стал эксклюзивным для Windows Vista, а DirectX 11 (2009) добавил тесселяцию и многопоточную обработку. DirectX 12 (2015) предоставил разработчикам более низкоуровневый доступ к GPU, сократив накладные расходы драйвера.

Состав

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

КомпонентНазначение
Direct3DТрёхмерная графика, рендеринг
DirectDrawДвумерная графика (устарел, заменён Direct3D)
DirectSoundВоспроизведение и микширование звука
DirectMusicСинтез музыки и динамических звуковых дорожек
DirectInputОбработка ввода с клавиатуры, мыши, джойстиков (устарел)
DirectPlayСетевое взаимодействие игроков (устарел)
DirectVideoВоспроизведение видео (устарел)
XAudio2Современный аудиоAPI, замена DirectSound
XInputПоддержка геймпадов Xbox
DirectX Graphics Infrastructure (DXGI)Управление цепочками обмена, полноэкранный режим, переключение адаптеров

Наибольшее значение имеет Direct3D — именно он отвечает за вывод трёхмерной графики и является ядром игрового рендеринга в Windows. Остальные компоненты либо устарели, либо были вынесены в отдельные библиотеки.

Принцип работы

Приложение вызывает функции DirectX, которые передают команды в драйвер видеокарты, а тот — в графический процессор. Слой API скрывает различия между моделями GPU разных производителей (NVIDIA, AMD, Intel), предоставляя разработчику унифицированный интерфейс. При этом DirectX поддерживает механизм «аппаратных уровней» (feature levels), позволяющий одной и той же программе работать на старом и новом оборудовании с разным набором возможностей.

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

Главные конкуренты DirectX на рынке графических API — это OpenGL (открытый стандарт, поддерживаемый консорциумом Khronos Group) и Vulkan (его преемник, также от Khronos). На платформах Apple используется Metal, на консолях PlayStation — собственные API Sony. Кроссплатформенные движки (Unity, Unreal Engine) обычно используют DirectX под Windows, Metal под macOS/iOS и Vulkan или OpenGL под Linux и Android.

В отличие от DirectX, который является закрытым продуктом Microsoft и работает только в экосистеме Windows и Xbox, Vulkan и OpenGL доступны на разных операционных системах. Вместе с тем DirectX остаётся доминирующим API в играх под Windows благодаря тесной интеграции с системой и поддержке со стороны большинства производителей игр.

DirectX Ultimate и DirectX Raytracing

В 2018 году Microsoft представила пакет DirectX 12 Ultimate, объединивший технологии аппаратного трассировки лучей (DirectX Raytracing, DXR), переменной частоты кадров (Variable Rate Shading), меш-шейдеры (Mesh Shaders) и обратную связь (Sampler Feedback). Эти технологии поддерживаются на видеокартах NVIDIA RTX, AMD RX 6000 и новее.

Значение

DirectX стал фактическим стандартом игровой разработки на платформе Windows. Подавляющее большинство компьютерных игр для Windows используют Direct3D в качестве основного графического API. Технологии, впервые появившиеся в DirectX, часто становятся отраслевыми стандартами: так, шейдерная модель, введённая в DirectX 8, была адаптирована в OpenGL, а концепция низкоуровневого доступа к GPU из DirectX 12 повлияла на дизайн Vulkan.

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

История компьютерных игр, DirectX SDK, Microsoft Docs — DirectX Graphics, Khronos Group — Vulkan Specification, «Game Engine Architecture» Джейсона Грегори.

Заметили ошибку или не согласны с информацией в статье? Напишите нам support@bfometr.ru