DirectX
Microsoft DirectX | |
---|---|
![]() | |
Тип | Среда для приложений и игр |
Разработчик | Microsoft |
Написана на | HLSLиC++ |
Операционная система | Microsoft Windows |
Первый выпуск | 30 сентября 1995 года |
Последняя версия | 12 Ultimate (2021) |
Лицензия | Microsoft EULA |
Сайт | DirectX |
![]() |
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.Главным фактором, определяющим, насколько популярна будет новая ОС, являлся набор программ, которые можно будет запускать под её управлением. В компании пришли к выводу, что, пока разработчики видятDOSболее подходящей для написания игровых приложений, коммерческий успех новой ОС весьма сомнителен.
DOS позволяла разработчику получитьпрямой доступквидеокарте,клавиатуре/мыши/джойстику и прочим частям системы, в то время как Windows 95, с её защищённой моделью памяти, предоставляла более стандартизованный, но в то же время весьма ограниченный и накладный доступ к устройствам. Microsoft нуждалась в новом способе дать разработчику всё, что ему необходимо. Крэйг Айслер (Craig Eisler), Алекс Сэйнт Джон (Alex St. John) и Эрик Энгстром (Eric Engstrom) решили эту проблему, назвав само решение DirectX.
Первый релиз DirectX был выпущен в сентябре1995 годапод названием «Windows GameSDK».
Ещё до появления DirectX Microsoft включила OpenGL в ОСWindows NT.Direct3D позиционировался как замена OpenGL вигровойсфере. Отсюда берёт своё начало противостояние между сторонниками кросс-платформенной OpenGL и доступной лишь в Windows (в том числе Windows NT) Direct3D. Так или иначе, остальные части DirectX очень часто комбинируются с OpenGL в компьютерных играх, так как OpenGL как таковой не подразумевает функциональности уровня DirectX (например, доступа к клавиатуре/джойстику/мыши, поддержки звука, игр по сети и т. д.).
DirectX является базой дляXboxAPI; Xbox API схож с DirectX 8.1, но обновление версии, как и на других консолях того времени, невозможно.
В 2002 году Microsoft выпустила DirectX 9 с улучшенной и расширенной поддержкойшейдеров.С 2002 года DirectX неоднократно обновлялся. В августе 2004 года в DirectX была добавлена поддержкашейдеровверсии 3.0 (DirectX 9.0c).
В апреле 2005 интерфейсDirectShowбыл перемещён вMicrosoft Platform SDK.
Хронология версий DirectX
[править|править код]основные релизы | |
1995 | DirectX 1 |
1996 | DirectX 2 |
DirectX 3 | |
1997 | DirectX 5 |
1998 | DirectX 6 |
1999 | DirectX 7 |
2000 | DirectX 8 |
2001 | |
2002 | DirectX 9 |
2003 | |
2004 | |
2005 | |
2006 | DirectX 10 |
2007 | |
2008 | |
2009 | DirectX 11 |
2010 | |
2011 | |
2012 | |
2013 | |
2014 | |
2015 | DirectX 12 |
2016 | |
2017 | |
2018 | |
2019 | |
2020 | DirectX 12 Ultimate |
Версия DirectX | Логотип | Номер версии | Операционная система | Дата релиза |
---|---|---|---|---|
DirectX 1.0 | 4.02.0095 | Windows 95a | 30 сентября1995 | |
DirectX 2.0 / 2.0a | 4.03.00.1096 | Windows 95 OSR 2 и Windows NT младше 4.0 | 5 июня1996 | |
DirectX 3.0 / 3.0a | 4.04.0068 / 69 | Windows 95 OSR 2.5 иWindows NT 4.0SP3 последняя официально поддерживаемая версия DirectX для Windows NT 4.0 |
15 сентября1996 | |
DirectX 4.0 | 4.05.00.0155 (RC55) | Доступен как бета для Windows NT 4.0 | 16 июля1997 | |
DirectX 5.0 | 4.05.01.1721 / 1998 | Windows 98 | 5 мая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/98SE | 3 февраля1999 | |
DirectX 6.2 | 5.00.2516.1900 (unofficial patch) | Windows NT/98SE/98/2000/ME | 21 августа1999 | |
DirectX 7.0 | 4.07.00.0700 (RC1) | Windows 2000иWindows ME | 22 сентября1999 | |
DirectX 7.0a | 4.07.00.0716 (RC1) | Windows 95/98/98SE/2000 | 17 декабря1999 | |
DirectX 8.0 | 4.08.00.0400 (RC10) | Windows 95/98/98SE/2000/ME | 12 ноября2000 | |
DirectX 8.0a | 4.08.00.0400 (RC14) | Последняя поддерживаемая версия DirectX для Windows 95 | 5 февраля2001 | |
DirectX 8.1 | 4.08.01.0810 | Windows XP/XP SP1,XBOX | 25 октября2001 | |
4.08.01.0881 (RC7) | Windows 98/98SE/2000/ME | 8 ноября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.0 | 4.09.0000.0900 | Windows Server 2003 | 24 декабря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 и Windows Server 2003 SP1 DirectX 9.0c с обновлениями по декабрь 2006 года — последняя поддерживаемая версия DirectX для Windows 98, Windows 98SE и Windows Me DirectX 9.0c с обновлениями по февраль 2010 года — последняя поддерживаемая версия DirectX для Windows 2000 DirectX 9.0c с обновлениями по июнь 2010 года — последняя поддерживаемая версия DirectX для Windows XP и Windows Server 2003 |
9 августа2004 | |
DirectX 9.0L | 4.09.0000.0905 (?) | Предоставляет дополнительные интерфейсы IDirect3D9Ex и IDirect3DDevice9Ex с функциональностью, доступной лишь черезLDDM-драйверыОСWindows Vista. | ||
DirectX 10 (включён в составWindows Vista) | ![]() |
6.0.6000.16386 | Первая версия для Windows Vista и Xbox 360.Информация поDirect3D10 |
10 ноября2006 |
DirectX 10.1 | 6.00.6001.18000 | Service Pack 1 дляWindows Vista,Windows Server 2008 | 4 февраля2008 | |
DirectX 11 (включён в составWindows 7) | ![]() |
6.01.7600.16385 | Windows 7,Windows Server 2008 R2 | 22 октября 2009 |
6.00.6002.18107 | Windows Vista SP2 и Windows Server 2008 SP2 черезPlatform Update for Windows Vista and Windows Server 2008[1] | 27 октября 2009 | ||
6.01.7601.17514 | Windows 7 SP1,Windows Server 2008 R2 SP1 | 16 февраля 2011 | ||
DirectX 11.1 (включён в составWindows 8)[2] | 6.02.9200.16384 | Windows 7 SP1,Windows 8,Windows RT,Windows Server 2012 | 1 августа2012 | |
DirectX 11.2 (включён в составWindows 8.1) | 6.03.9600.16384 | Windows 8.1,Windows RT,Windows Server 2012 R2 | 18 октября2013 | |
DirectX 11.3 (включён в составWindows 10) | Windows 10 | 29 июля2015 | ||
DirectX 12 (включён в составWindows 10) | 10.00.10240.16384 | Windows 10,Windows 11,Xbox One,Xbox Series X | 29 июля2015 |
Ключевые особенности
[править|править код]- DirectX 6.0— мультитекстурирование
- DirectX 7.0— аппаратная поддержка преобразований, обрезания и освещения
- DirectX 8.0—шейдернаямодель 1.1
- DirectX 8.1— пиксельные шейдеры 1.4 и вершинные шейдеры 1.1
- DirectX 9.0— шейдерная модель 2.0
- DirectX 9.0b— пиксельные шейдеры 2.0b и вершинные шейдеры 2.0
- DirectX 9.0c— шейдерная модель 3.0
- DirectX 9.0L— версия DirectX 9.0 дляWindows Vistaи выше
- DirectX 10—шейдерная модель 4.0(толькоWindows Vista,Windows 7,Windows 8)
- DirectX 10.1— шейдерная модель 4.1 (толькоWindows Vista,Windows 7,Windows 8)
- DirectX 11— шейдерная модель 5.0 (толькоWindows Vista,Windows 7,Windows 8/8.1)
- DirectX 11.3/DirectX 12— шейдерная модель 5.1 (Windows 10,частично Windows 7)
Совместимость
[править|править код]Многие современные устройства имеют DirectX-совместимые драйверы, иными словами, пользователь должен установить DirectX для использования всех возможностей устройства. На данный момент система обновления драйверовWindows Updateпозволяет загружать только необходимые библиотеки, а не весь драйвер целиком.
Поддерживаемые операционные системы:
- Windows 95/98/98 SE/ME;
- Windows NT 4.0,Windows 2000,Windows 2000 Advanced Server, Windows 2000 Professional Edition, Windows 2000 Server, Windows 2000 Service Pack 2, Windows 2000 Service Pack 3, Windows 2000 Service Pack 4;
- Windows Server 2003,Windows Server 2003 Service Pack 1, Windows Server 2003 Datacenter x64 Edition, Windows Server 2003 Enterprise x64 Edition, Windows Server 2003 Standard x64 Edition, Windows Small Business Server 2003;
- Windows XP,Windows XP 64-bit, Windows XP Home Edition, Windows XP Media Center Edition, Windows XP Professional Edition, Windows XP Service Pack 1, Windows XP Service Pack 2, Windows XP Service Pack 3, Windows XP Starter Edition, Windows XP Tablet PC Edition;
- Windows Vista,Windows 7,Windows 8,Windows 8.1,Windows 10,Windows 11;
- Windows Server 2008,Windows Server 2008 R2,Windows Server 2012,Windows Server 2016,Windows Server 2019,Windows Server 2022.
Библиотеки обёртки
[править|править код]В случае возникновения различных проблем при использовании устаревших приложений и игр можно воспользоваться специальной библиотекой-обёрткой (wrapper).
На текущий момент существует несколько таких вариантов, в том числе трансляция вызовов в другие API, но высокая скорость работы возможна только из «DirectX в DirectX».
- dgVoodoo2 — обёртка для запуска устаревших игр на основе DirectX 1-7 и также 8-9 в DirectX 11/12 с уровнем функций 10/10.1/11 или через WARP. В первую очередь использовался для запуска Glide игр, но позже была добавлена поддержка DirectX.[3]
- dxwrapper — обёртка для запуска DirectX 1-8 в DirectX 9.[4]
- D9VK — обёртка для использования DirectX 9 игр и приложений под Vulkan без необходимости их переписывать.[5]
- WineD3D — обёртка, превращающая команды DirectX в OpenGL
См. также
[править|править код]- GDI
- OpenGL
- Vulkan (API)
- Mantle (API)(от AMD)
- Simple DirectMedia Layer
- X (DirectX)— формат файла для хранения 3D-объектов, разработанный Microsoft для DirectX
- Direct3D 10
- Direct3D 11
- Direct3D 12
- WinG
Примечания
[править|править код]- ↑Microsoft upgrades Windows Vista with DirectX 11 .pcgameshardware.com.Дата обращения: 3 мая 2016.Архивировано31 марта 2016 года.
- ↑Новые возможности Direct3D 11.1 / ХабрахабрАрхивировано17 сентября 2011 года.
- ↑dgVoodoo2 .dege.freeweb.hu. Дата обращения: 5 августа 2019. Архивировано изоригинала5 августа 2019 года.
- ↑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 года.
- ↑Joshua-Ashton.A Direct3D9 to Vulkan layer using the DXVK backend.Github.Дата обращения: 5 августа 2019.Архивировано2 марта 2019 года.
Литература
[править|править код]- Адамс Д.DirectX: продвинутая анимация. Комплект.—«КУДИЦ-ПРЕСС»,2004. — С. 480. —ISBN 5-9579-0025-7.
- Nigel Thompson.3D Graphics Programming for Windows(англ.).— Microsoft Press, 1996. — 328 p. —ISBN 1572313455.—ISBN 978-1572313453.