DirectX

Материал из Википедии — свободной энциклопедии
(перенаправлено с «Direct3D»)
Текущая версия страницы покане проверялась опытными участниками и может значительно отличаться отверсии, проверенной 5 июня 2020 года; проверки требуют62 правки.
Перейти к навигацииПерейти к поиску
Microsoft DirectX
Логотип программы Microsoft DirectX
ТипСреда для приложений
РазработчикMicrosoft
Написана наHLSL и C++
Операционная системаMicrosoft Windows
Дата выпуска30 сентября1995
Последняя версия12.2 (10 ноября 2020)
ЛицензияMicrosoft EULA
Сайтmicrosoft.com/en-us/down…
Логотип Викисклада Медиафайлы на Викискладе

DirectX (отангл. direct — прямой, непосредственный, произносится как «ДиректИкс») — наборAPI, разработанных для решения задач, связанных с программированием подMicrosoft Windows. Наиболее широко используется при написании компьютерных игр. Пакет средств разработки DirectX под Microsoft Windows бесплатно доступен на сайтеMicrosoft. Зачастую обновлённые версии DirectX поставляются вместе с игровыми приложениями.

Содержание

Компоненты DirectX

[править |править код]

Практически все части DirectX API представляют собой наборыCOM-совместимых объектов.

В целом, DirectX подразделяется на:

  • DirectX Graphics, набор интерфейсов, ранее (до версии 8.0) делившихся на:
    • DirectDraw: интерфейс вывода растровой графики (его разработка давно прекращена);
    • Direct3D (D3D): интерфейс вывода трёхмерных примитивов.
  • DirectInput: интерфейс, используемый для обработки данных, поступающих с клавиатуры, мыши, джойстика и прочих игровых контроллеров.
  • DirectPlay: интерфейс сетевой коммуникации игр.
  • DirectSound: интерфейс низкоуровневой работы со звуком (формата Wave)
  • DirectMusic: интерфейс воспроизведения музыки в форматах Microsoft.
  • DirectShow: интерфейс, используемый для ввода/вывода аудио- и/или видеоданных.
    • DirectX Instruments — технология, позволяющая на основе мультимедийного API DirectX создавать и использовать программныесинтезаторы. В отличие от DX-плагинов, такие программы могут полностью управляться по MIDI и служат главным образом не для обработки, а для синтеза звука. Технология DXi была популярна в 2001—2004 гг., особенно в программных продуктах Cakewalk, но со временем проиграла «войну форматов» технологииVST отSteinberg.
  • DirectSetup: часть, ответственная за установку DirectX.
  • DirectX Media Objects: реализует функциональную поддержку потоковых объектов (например, кодировщики/декодировщики)
  • Direct2D: интерфейс вывода двухмерной графики

История

[править |править код]

Изначально нацеленный на разработку видеоигр, DirectX стал популярен и в других областях разработки программного обеспечения. К примеру, DirectX, наряду сOpenGL, получил очень широкое распространение в инженерном/математическом ПО.

В 1994 году Microsoft была практически готова выпустить следующую версию Windows —Windows 95. Главным фактором, определяющим, насколько популярна будет новая ОС, являлся набор программ, которые можно будет запускать под её управлением. В Microsoft пришли к выводу, что, пока разработчики видятDOS более подходящей для написания игровых приложений, коммерческий успех новой ОС весьма сомнителен.

DOS позволяла разработчику получить прямой доступ к видеокарте, клавиатуре/мыши/джойстику и прочим частям системы, в то время как Windows 95, с её защищённой моделью памяти, предоставляла более стандартизованный, но в то же время весьма ограниченный и накладный доступ к устройствам. Microsoft нуждалась в новом способе дать разработчику всё, что ему необходимо. Айслер (Eisler), Сэйнт Джон (St. John) и Энгстром (Engstrom) решили эту проблему, назвав само решение DirectX.

Первый релиз DirectX был выпущен в сентябре 1995 года под названием «Windows Game SDK».

Ещё до появления DirectX Microsoft включила OpenGL в ОСWindows NT. Direct3D позиционировался как замена OpenGL в игровой сфере. Отсюда берёт своё начало «священная война» между сторонниками кросс-платформенной OpenGL и доступной лишь в Windows (в том числе Windows NT) Direct3D. Так или иначе, остальные части DirectX очень часто комбинируются с OpenGL в компьютерных играх, так как OpenGL как таковой не подразумевает функциональности уровня DirectX (например, доступа к клавиатуре/джойстику/мыши, поддержки звука, игр по сети и т. д.).

DirectX является базой дляXbox API. Xbox API схож с DirectX 8.1, но обновление версии, как и на других консолях того времени, невозможно.

В 2002 году Microsoft выпустила DirectX 9 с улучшенной и расширенной поддержкойшейдеров. С 2002 года DirectX неоднократно обновлялся. В августе 2004 года в DirectX была добавлена поддержкашейдеров версии 3.0 (DirectX 9.0c).

В апреле 2005 интерфейсDirectShow был перемещён вMicrosoft Platform SDK.

Хронология версий DirectX

[править |править код]
Версия DirectXЛоготипНомер версииОперационная системаДата релиза
DirectX 1.04.02.0095Windows 95a30 сентября1995
DirectX 2.0 / 2.0a 4.03.00.1096Windows 95 OSR 2 и Windows NT младше 4.05 июня1996
DirectX 3.0 / 3.0a 4.04.0068 / 69Windows 95 OSR 2.5 иWindows NT 4.0 SP3
последняя официально поддерживаемая версия DirectX для Windows NT 4.0
15 сентября1996
DirectX 4.0 4.05.00.0155 (RC55)Доступен как бета для Windows NT 4.016 июля1997
DirectX 5.0 4.05.01.1721 / 1998Windows 985 мая1998
DirectX 6.0 4.06.00.0318 (RC3)Windows 98 SE
последняя поддерживаемая версияDirectX Media для Windows NT 4.0, а также данная версия DirectX была в Dreamcast
7 августа1998
DirectX 6.1 4.06.02.0436 (RC0)Windows 95/98/98SE3 февраля1999
DirectX 6.25.00.2516.1900 (unofficial patch)Windows NT/98SE/98/2000/ME21 августа1999
DirectX 7.04.07.00.0700 (RC1)Windows 2000 иWindows ME22 сентября1999
DirectX 7.0a 4.07.00.0716 (RC1)Windows 95/98/98SE/200017 декабря1999
DirectX 8.04.08.00.0400 (RC10)Windows 95/98/98SE/2000/ME12 ноября2000
DirectX 8.0a 4.08.00.0400 (RC14)Последняя поддерживаемая версия DirectX для Windows 955 февраля2001
DirectX 8.1 4.08.01.0810Windows XP/XP SP125 октября2001
4.08.01.0881 (RC7)Windows 98/98SE/2000/ME8 ноября2001
DirectX 8.1b 4.08.01.0901 25 июня2002
DirectX 8.2 4.08.02.0134 (4.09.00.0134) 27 сентября2002
DirectX 9.04.09.0000.0900Windows Server 200324 декабря2002
DirectX 9.0a 4.09.0000.0901 26 марта2003
DirectX 9.0b 4.09.0000.0902 (RC2) 13 августа2003
DirectX 9.0c 4.09.0000.0904 (RC0)Windows XP SP2
последняя поддерживаемая версия DirectX для Windows 98SE и Windows Me
9 августа2004
DirectX 9.0L 4.09.0000.0905 (?)Предоставляет дополнительные интерфейсы IDirect3D9Ex и IDirect3DDevice9Ex с функциональностью, доступной лишь черезLDDM-драйверы ОСWindows Vista.
DirectX 10 (включён в составWindows Vista)
6.0.6000.16386Первая версия для Windows Vista.Информация поDirect3D10
10 ноября2006
DirectX 10.1 6.00.6001.18000Service Pack 1 дляWindows Vista,Windows Server 20084 февраля2008
DirectX 11 (включён в составWindows 7)
6.01.7600.16385Windows 7,Windows Server 2008 R222 октября 2009
6.00.6002.18107Windows Vista SP2 и Windows Server 2008 SP2 черезPlatform Update for Windows Vista and Windows Server 2008[1]27 октября 2009
6.01.7601.17514Windows 7 SP1,Windows Server 2008 R2 SP116 февраля 2011
DirectX 11.1 (включён в составWindows 8)[2]6.02.9200.16384Windows 7 SP1,Windows 8,Windows RT,Windows Server 20121 августа2012
DirectX 11.2 (включён в составWindows 8.1)6.03.9600.16384Windows 8.1,Windows RT,Windows Server 2012 R218 октября2013
DirectX 11.3 (включён в составWindows 10)Windows 1029 июля2015
DirectX 12 (включён в составWindows 10)10.00.10240.16384Windows 10,Xbox One,Xbox Series X29 июля2015
DirectX 12.110.00.17763.0001Windows 10, добавлена поддержка DirectX Raytracing[3]2 октября 2018
DirectX 12.210.00.19041.0928Windows 10, Ultimate10 ноября 2020

Ключевые особенности

[править |править код]

Совместимость

[править |править код]

Многие современные устройства имеют DirectX-совместимые драйверы, иными словами, пользователь должен установить DirectX для использования всех возможностей устройства. На данный момент система обновления драйверовWindows Update позволяет загружать только необходимые библиотеки, а не весь драйвер целиком.

Поддерживаемые операционные системы:

Библиотеки-обёртки

[править |править код]

В случае возникновения различных проблем при использовании устаревших приложений и игр можно воспользоваться специальной библиотекой-обёрткой (wrapper).

На текущий момент существует пара таких вариантов, в том числе трансляция вызовов в другие API, но высокая скорость работы возможна только из «DirectX в DirectX».

  • dgVoodoo2 — враппер для запуска устаревших игр на основе DirectX 1-7 и так же 8-9 в DirectX 11 с уровнем функций 10/10.1 или через WARP. В первую очередь использовался для запуска Glide-игр, но позже была добавлена поддержка DirectX.[4]
  • dxwrapper — обертка для запуска DirectX 1-8 в DirectX 9.[5]
  • D9VK — обертка для использования DirectX 9 игр и приложений под Vulkan без необходимости их переписывать.[6]
  • DXVK — обертка для использования DirectX 8/9/10/11 игр и приложений через Vulkan.
  • VKD3D — обертка для запуска DirectX 12 игр и приложений через Vulkan.
  • WineD3D — обертка для запуска приложений и игр DirectX 1-11 через OpenGL.

См. также

[править |править код]

Примечания

[править |править код]
  1. Microsoft upgrades Windows Vista with DirectX 11 . pcgameshardware.com. Дата обращения: 3 мая 2016. Архивировано изоригинала 31 марта 2016 года.
  2. Новые возможности Direct3D 11.1 / ХабрахабрАрхивировано 17 сентября 2011 года.
  3. DirectX Raytracing and the Windows 10 October 2018 Update (англ.) (2 октября 2018).
  4. dgVoodoo2 . dege.freeweb.hu. Дата обращения: 5 августа 2019. Архивировано изоригинала 5 августа 2019 года.
  5. Elisha Riedlinger. Fixes compatibility issues with older games running on Windows 10 by wrapping DirectX dlls. Also allows loading custom libraries with the file extension .asi into game processes.: elishacloud/dxw... — 2019-08-04. Архивировано 7 ноября 2019 года.
  6. Joshua-Ashton. A Direct3D9 to Vulkan layer using the DXVK backend.  Github. Дата обращения: 5 августа 2019. Архивировано 2 марта 2019 года.

Литература

[править |править код]
  • Адамс Д. DirectX: продвинутая анимация. Комплект. —«КУДИЦ-ПРЕСС», 2004. — С. 480. —ISBN 5-9579-0025-7.

Ссылки

[править |править код]
Перейти к шаблону «Компоненты Microsoft Windows»
Основные
Службы
управления
Приложения
Win32
UWP/WASDK[англ.]
Исторические
Игры
Ядро ОС
Службы
Файловые
системы
Серверы
Архитектура
Безопасность
Совместимость
Перейти к шаблону «Microsoft»
ПО
Серверное ПО[англ.]
Технологии
Интернет
Игры
Аппаратное
обеспечение
Образование
Лицензирование
Подразделения
Рекламные кампании
Совет директоров
Источник —https://ru.wikipedia.org/w/index.php?title=DirectX&oldid=150790172
Категории:
Скрытые категории: