DirectX - DirectX
Эта статья нужны дополнительные цитаты для проверка.Апрель 2016 г.) (Узнайте, как и когда удалить этот шаблон сообщения) ( |
Логотип DirectX, начиная с DirectX 9 | |
Разработчики) | Microsoft |
---|---|
изначальный выпуск | 30 сентября 1995 г. |
Стабильный выпуск | 12 Ultimate API / 10 ноября 2020 г. |
Операционная система | Майкрософт Виндоус, Dreamcast,[1] Xbox, Xbox 360, Xbox One, Xbox Series X и Series S |
Тип | API |
Microsoft DirectX это собрание интерфейсы прикладного программирования (API) для обработки задач, связанных с мультимедиа, особенно программирование игр и видео, на Microsoft платформы. Первоначально все названия этих API начинались с "Direct", например Direct3D, DirectDraw, DirectMusic, DirectPlay, DirectSound, и так далее. Название DirectX был придуман как сокращенный термин для всех этих API ( Икс вместо конкретных имен API) и вскоре стал названием коллекции. Когда позже Microsoft решила разработать игровую консоль, Икс было использовано как основа названия Xbox чтобы указать, что консоль основана на технологии DirectX.[2] В Икс initial был перенесен в именование API-интерфейсов, разработанных для Xbox, таких как XInput и Кросс-платформенный инструмент для создания аудио (XACT), тогда как шаблон DirectX был продолжен для Windows API, таких как Direct2D и DirectWrite.
Direct3D (API трехмерной графики в DirectX) широко используется при разработке видеоигры за Майкрософт Виндоус и Xbox линейка консолей. Direct3D также используется другими программного обеспечения приложения для визуализации и графических задач, такие как проектирование CAD / CAM. Поскольку Direct3D является наиболее широко разрекламированным компонентом DirectX, часто можно встретить взаимозаменяемые названия «DirectX» и «Direct3D».
DirectX комплект для разработки программного обеспечения (SDK) состоит из библиотеки времени выполнения в распространяемой двоичной форме вместе с сопроводительной документацией и заголовки для использования в кодировании. Первоначально среды выполнения устанавливались только играми или явно пользователем. Windows 95 не запускался с DirectX, но DirectX был включен в Windows 95 OEM Service Release 2.[3] Windows 98 и Windows NT 4.0 оба поставлялись с DirectX, как и все версии Windows, выпущенные с тех пор. SDK доступен для бесплатной загрузки. Хотя среды выполнения являются проприетарным программным обеспечением с закрытым исходным кодом, исходный код предоставляется для большинства образцов SDK. Начиная с выпуска Windows 8 Developer Preview, DirectX SDK был интегрирован в Windows SDK.[4]
История развития
В конце 1994 года Microsoft была готова выпустить Windows 95, его следующий Операционная система. Важным фактором, определяющим ценность, которую будут придавать потребители, были программы, которые на нем можно было бы запускать. Трое сотрудников Microsoft - Крейг Эйслер, Алекс Сент-Джон, и Эрик Энгстром - были обеспокоены, потому что программисты имел обыкновение видеть предыдущую операционную систему Microsoft, MS-DOS, как лучшая платформа для программирования игр, а это означает, что для Windows 95 будет разработано мало игр, и операционная система не будет иметь такого большого успеха. Это усугублялось негативным восприятием порта видеоигры для Windows. Король Лев. В игре использовалась Крыло, который разбился на Compaq Presarios который был доставлен вместе с ним после партнерства между Compaq и Дисней, как Cirrus Logic драйверы дисплея, используемые Presarios, не были тщательно протестированы с API.[5]
DOS позволяла прямой доступ к видеокартам, клавиатуры, мышей, звуковые устройства, и все другие части системы, тогда как Windows 95 с ее моделью защищенной памяти ограничила доступ ко всем этим, работая по гораздо более стандартизированной модели. Microsoft требовалось быстрое решение для программистов; до выпуска операционной системы оставалось всего несколько месяцев. Эйслер (руководитель разработки), Сент-Джон и Энгстром (менеджер программы) работали вместе, чтобы решить эту проблему, с решением, которое они в конечном итоге назвали DirectX.[6]
Первая версия DirectX была выпущена в сентябре 1995 года как Windows Games SDK. Это было Win32 замена DCI[7] и WinG API для Windows 3.1. DirectX позволял всем версиям Microsoft Windows, начиная с Windows 95, включать высокопроизводительные мультимедиа. Эйслер написал в своем блоге об безумном стремлении к созданию DirectX 1–5.[8]
DirectX 2.0 стал компонентом самой Windows с выпуском Windows 95 OSR2 и Windows NT 4.0 в середине 1996 г. Поскольку Windows 95 сама по себе была еще новой и для нее было выпущено мало игр, Microsoft активно продвигала DirectX среди разработчиков, которые в целом не доверяли способности Microsoft создать игровую платформу на Windows. Алекс Сент-Джон, евангелист DirectX, устроил тщательно продуманное мероприятие в 1996 году. Конференция разработчиков компьютерных игр которую разработчик игр Джей Барсон назвал Римский тема, в том числе настоящая львы, тоги и что-то напоминающее закрытый карнавал.[9] Именно на этом мероприятии Microsoft впервые представила Direct3D и DirectPlay, и продемонстрировали мультиплеер MechWarrior 2 проигрывается через Интернет.
Перед командой DirectX стояла непростая задача тестирования каждой версии DirectX на множестве компьютерное железо и программного обеспечения. В каждой бета-версии и финальной версии тестировалось множество различных видеокарт, звуковых карт, материнских плат, процессоров, устройств ввода, игр и других мультимедийных приложений. Команда DirectX также разработала и распространила тесты, которые позволили индустрии оборудования подтвердить, что новые конструкции оборудования и выпуски драйверов будут совместимы с DirectX.
До DirectX Microsoft включала OpenGL на их Windows NT Платформа.[10] В то время, OpenGL требовалось "высококлассное" оборудование и было сосредоточено на инженерное дело и CAD использует.[нужна цитата ] Direct3D задумывался как контролируемая Microsoft альтернатива OpenGL, изначально ориентированная на использование в играх. По мере роста 3D-игр OpenGL развивался, чтобы включить лучшую поддержку методов программирования для интерактивных мультимедийных приложений, таких как игры, предоставляя разработчикам выбор между использованием OpenGL или Direct3D в качестве API 3D-графики для своих приложений. С этого момента началась «битва» между сторонниками кроссплатформенного OpenGL и Direct3D только для Windows. Между прочим, OpenGL поддерживался в Microsoft командой DirectX. Если разработчик решил использовать API трехмерной графики OpenGL, другие API-интерфейсы DirectX часто объединяются с OpenGL в компьютерные игры потому что OpenGL не включает в себя все функции DirectX (например, поддержку звука или джойстика).
В версии для консоли DirectX использовался в качестве основы для Microsoft Xbox, Xbox 360 и Xbox One консоль API. API был разработан совместно Microsoft и Nvidia, которая разработала специальное графическое оборудование, используемое в оригинальной Xbox. Xbox API был похож на DirectX версии 8.1, но не обновлялся, как и другие консольные технологии. Кодовое имя Xbox было DirectXbox, но было сокращено до Xbox из-за его коммерческого названия.[11]
В 2002 году Microsoft выпустила DirectX 9 с поддержкой использования гораздо более длинных шейдерных программ, чем раньше, с пиксельными и вершинными шейдерами версии 2.0. С тех пор Microsoft продолжала обновлять пакет DirectX, представив Shader Model 3.0 в DirectX 9.0c, выпущенном в августе 2004 года.
По состоянию на апрель 2005 г. DirectShow был удален из DirectX и перемещен в Пакет SDK для платформы Microsoft вместо.
Было подтверждено присутствие DirectX в Microsoft Windows Phone 8.[12]
В реальном времени трассировка лучей был объявлен как DXR в 2018 году.
Логотипы
Исходный логотип напоминал деформированный символ предупреждения о радиации. Как ни странно, первоначальное название проекта DirectX было «Manhattan Project», отсылка к Инициатива США по ядерному оружию. Алекс Сент-Джон, в то время возглавлявший евангелизацию Microsoft DirectX, утверждает[13] коннотацию конечного результата Манхэттенского проекта ( ядерная бомбардировка Японии ) намеренно, и что DirectX и его родственный проект, Xbox (с похожим логотипом), были призваны отвратить японских производителей видеоигр от их доминирования на индустрия видеоигр.[14] Однако Microsoft публично отрицает эту учетную запись, вместо этого заявляя, что логотип является просто художественным дизайном.[14]
DirectX 1.0–8.2
DirectX 9.0–12
Составные части
DirectX состоит из нескольких API:
- Direct3D (D3D): в реальном времени 3D рендеринг API
- DXGI: Перечисляет адаптеры и мониторы, а также управляет цепочками обмена для Direct3D 10 и более поздних версий.
- Direct2D: API 2D-графики
- DirectWrite: API визуализации текста
- DirectCompute: API для универсальные вычисления на графических процессорах
- Диагностика DirectX (DxDiag): инструмент для диагностики и создания отчетов о компонентах, связанных с DirectX, таких как аудио, видео и драйверы ввода.
- XACT3: API аудио высокого уровня
- XAudio2: API аудио низкого уровня
- Трассировка лучей DirectX (DXR): в реальном времени трассировка лучей API
- DirectStorage: API файлового ввода-вывода, ориентированного на GPU
- DirectML: API машинного обучения и искусственного интеллекта с ускорением на GPU
Microsoft исключила следующие компоненты:
- DirectX Media: Состоит из:
- DirectAnimation для 2D / 3D[15] веб-анимация DirectShow для воспроизведения мультимедиа и потоковое мультимедиа
- Объекты DirectX Media: поддержка потоковых объектов, таких как кодировщики, декодеры и эффекты (устарело в пользу Преобразование Media Foundation; MFT)[16]
- DirectX Transform для веб-интерактивности и режим Direct3D Retained Mode для трехмерной графики более высокого уровня
- Плагины DirectX за обработка аудиосигнала
- Ускорение видео DirectX для ускоренного воспроизведения видео (устарело в пользу Фонд СМИ )
- DirectDraw: API 2D-графики (устарело в пользу Direct2D )
- Прямой ввод: API ввода для взаимодействия с клавиатуры, мышей, джойстики, и игровые контроллеры (Не рекомендуется после версии 8 в пользу XInput за Xbox 360 контроллеры или стандартная обработка сообщений окна WM_INPUT для ввода с клавиатуры и мыши)
- DirectPlay: Сетевой API для связи по локальной или глобальной сети (устарело после версии 8 в пользу Игры для Windows Live и Xbox Live )
- DirectSound: Audio API (устарело с DirectX 8 в пользу XAudio2 и XACT3)
- DirectSound3D (DS3D): 3D звуки API (устарело с DirectX 8 в пользу XAudio2 и XACT3)
- DirectMusic: Компоненты для воспроизведения саундтреков, созданные в DirectMusic Producer (устарело с DirectX 8 в пользу XAudio2 и XACT3)
Функциональность DirectX предоставляется в виде COM -стилевые объекты и интерфейсы. Кроме того, хотя это и не сами компоненты DirectX, управляемые объекты были созданы на основе некоторых частей DirectX, таких как Managed Direct3D[17] и графическая библиотека XNA[18] поверх Direct3D 9.
Microsoft распространяет инструмент отладки для DirectX под названием «PIX». [19]
Версии
DirectX 9
Эта секция нуждается в расширении. Вы можете помочь добавляя к этому. (Октябрь 2018 г.) |
DirectX 9 был выпущен в 2002 году для Windows 98 и XP и в настоящее время поддерживается всеми последующими версиями. Microsoft продолжает вносить изменения в DirectX 9.0c, в результате чего прекращается поддержка некоторых из вышеупомянутых операционных систем. С января 2007 года требуется Windows 2000 или XP. Также была представлена Shader Model 2.0, содержащая Pixel Shader 2.0 и Vertex Shader 2.0. Windows XP SP2 и новее включают DirectX 9.0c,[20] но может потребоваться более новая распространяемая установка среды выполнения DirectX для приложений DirectX 9.0c, скомпилированных с помощью DirectX 9.0 SDK от февраля 2005 г. или новее.
DirectX 10
DirectX 10 является крупным обновлением DirectX API, поставляется с и доступен только с Виндоус виста и позже; предыдущие версии Windows, такие как Windows XP, не могут запускать эксклюзивные приложения DirectX 10. Скорее, программы, которые запускаются в системе Windows XP с оборудованием DirectX 10, просто прибегают к пути кода DirectX 9.0c, последней версии, доступной для компьютеров с Windows XP.[21]
Изменения для DirectX 10 были обширными. Многие бывшие части DirectX API устарели в последней версии DirectX SDK и сохранены только для совместимости: Прямой ввод устарел в пользу XInput, DirectSound устарел в пользу Кросс-платформенный инструмент для создания аудио система (XACT) и дополнительно потеряла поддержку аппаратного ускорения звука, поскольку Аудио стек Vista воспроизводит звук в программном обеспечении на ЦП. DirectPlay DPLAY.DLL также был удален и заменен на dplayx.dll; игры, использующие эту DLL, должны скопировать ее и переименовать в dplay.dll.
Для обеспечения обратной совместимости DirectX в Windows Vista содержит несколько версий Direct3D:[22]
- Direct3D 9: имитирует поведение Direct3D 9, как это было в Windows XP. Подробности и преимущества Vista Модель драйвера дисплея Windows скрыты от приложения, если установлены драйверы WDDM. Это единственный доступный API, если установлены только графические драйверы XP (XDDM), например, после обновления до Vista.
- Direct3D 9Ex (во время разработки Windows Vista известен как 9.0L или 9.L): обеспечивает полный доступ к новым возможностям WDDM (если установлены драйверы WDDM) при сохранении совместимости с существующими приложениями Direct3D. В Windows Aero Пользовательский интерфейс основан на D3D 9Ex.
- Direct3D 10: Разработан на основе новой модели драйвера в Windows Vista и содержит ряд улучшений возможностей и гибкости рендеринга, включая Шейдерная модель 4.
Direct3D 10.1 - это инкрементное обновление Direct3D 10.0, которое поставляется с и требует Пакет обновления 1 для Windows Vista.[23] Этот выпуск в основном устанавливает еще несколько стандартов качества изображения для поставщиков графики, предоставляя разработчикам больший контроль над качеством изображения.[24] Он также добавляет поддержку массивов кубических карт, отдельные режимы наложения для каждого MRT, экспорт маски покрытия из пиксельного шейдера, возможность запускать пиксельный шейдер для каждой выборки, доступ к буферам глубины с множественной выборкой.[25] и требует, чтобы видеокарта поддерживала Shader Model 4.1 или выше и 32-битные операции с плавающей запятой. Direct3D 10.1 по-прежнему полностью поддерживает оборудование Direct3D 10, но для использования всех новых функций требуется обновленное оборудование.[26]
DirectX 11
Microsoft представила DirectX 11 на мероприятии Gamefest 08 в Сиэтле с основными запланированными функциями, включая ГПГПУ поддерживать (DirectCompute ) и Direct3D 11 с мозаика поддерживать[27][28] и улучшенный многопоточность поддержка, чтобы помочь разработчикам видеоигр в разработке игр, которые лучше используют многоядерный процессоры.[29] Direct3D 11 работает в Windows Vista, Windows 7, Windows 8 и Windows 10. Части нового API, такие как многопоточная обработка ресурсов, могут поддерживаться на оборудовании класса Direct3D 9/10 / 10.1. Для аппаратной тесселяции и Shader Model 5.0 требуется оборудование с поддержкой Direct3D 11.[30] С тех пор Microsoft выпустила техническую предварительную версию Direct3D 11.[31] Direct3D 11 - это строгий надмножество Direct3D 10.1 - все аппаратные средства и функции API версии 10.1 сохранены, а новые функции добавляются только при необходимости для раскрытия новых функций. Это помогает сохранить обратную совместимость с предыдущими версиями DirectX.
Microsoft выпустила финальное обновление платформы для Windows Vista 27 октября 2009 г., то есть через 5 дней после первоначального выпуска Windows 7 (запущенного с Direct3D 11 в качестве базового стандарта).
С тех пор было выпущено четыре обновления для DirectX 11:
- DirectX 11.1 включен в Windows 8. Он поддерживает WDDM 1.2 для повышения производительности функции улучшенной интеграции Direct2D (сейчас в версии 1.1), Direct3D, и DirectCompute, и включает DirectXMath, XAudio2, и XInput библиотеки из фреймворка XNA. Он также имеет стереоскопическое 3D поддержка игр и видео.[32] DirectX 11.1 также был частично портированный в Windows 7 через Обновление платформы Windows 7.[33][34]
- DirectX 11.2 включен в Windows 8.1 (включая версию RT) и Windows Server 2012 R2.[35] Он добавил некоторые новые функции в Direct2D как геометрические реализации.[36] Он также добавил композицию цепочки подкачки, которая позволяет рендерить некоторые элементы сцены с более низким разрешением, а затем компоновать с помощью аппаратного наложения с другими частями, рендерингом с более высоким разрешением.[37]
- DirectX 11.X - это надмножество DirectX 11.2, работающее на Xbox One.[38] На самом деле он включает в себя некоторые функции, такие как комплекты рисования, которые позже были объявлены как часть DirectX 12.[39]
- DirectX 11.3 был анонсирован вместе с DirectX 12 на GDC и выпущен в 2015 году. Он предназначен для дополнения DirectX 12 в качестве альтернативы более высокого уровня.[40] Он входит в состав Windows 10.[35]
DirectX 12
Microsoft анонсировала DirectX 12 на GDC 20 марта 2014 г. и был официально запущен вместе с Windows 10 29 июля 2015 г.
Главной особенностью новой версии DirectX было введение расширенных низкоуровневое программирование API для Direct3D 12 что может снизить накладные расходы водителя. Разработчики теперь могут реализовывать свои собственные списки команд и буферы для графического процессора, что позволяет более эффективно использовать ресурсы за счет параллельное вычисление. Ведущий разработчик Макс Макмаллен заявил, что основная цель Direct3D 12 - достичь «эффективности консольного уровня на телефоне, планшете и ПК».[41] Выпуск Direct3D 12 идет вместе с другими инициативами для графических API с низким уровнем накладных расходов, включая AMD Мантия для видеокарт AMD, Apple Металл для iOS и macOS и Хронос Групп кроссплатформенность Вулкан.
Поддержка нескольких адаптеров будет включена в DirectX 12, что позволит разработчикам одновременно использовать несколько графических процессоров в системе; поддержка нескольких GPU ранее зависела от реализаций поставщика, таких как AMD CrossFireX или же NVIDIA SLI.[42][43][44][45]
- Неявный мультиадаптер поддержка будет работать аналогично предыдущим версиям DirectX, где кадры поочередно визуализируются через связанные графические процессоры с аналогичной вычислительной мощностью.
- Явный мультиадаптер предоставит разработчикам два различных шаблона API. Связанные графические процессоры позволит DirectX просматривать видеокарты в SLI или CrossFireX как один GPU и использовать объединенные ресурсы. В то время как Несвязанные графические процессоры позволит использовать в DirectX графические процессоры разных производителей, например, дополняя выделенный графический процессор с встроенный графический процессор на процессоре или объединение карт AMD и NVIDIA. Однако сложные смешанные конфигурации с несколькими GPU требуют значительно более внимательной поддержки со стороны разработчиков.
DirectX 12 поддерживается на всех Ферми и более поздние графические процессоры Nvidia на AMD GCN на базе чипов и на Intel Haswell и более поздние графические блоки процессоров.[46]
В СИГГРАФ 2014 г. Intel выпустила демонстрацию, демонстрирующую компьютер, созданный поле астероидов, в котором DirectX 12 был заявлен на 50–70% эффективнее DirectX 11 по скорости рендеринга и потребляемой мощности процессора.[47][48]
Прах сингулярности была первой общедоступной игрой, в которой использовался DirectX 12. Тестирование проводилось Ars Technica в августе 2015 г. обнаружил небольшое снижение производительности в режиме DirectX 12 по сравнению с режимом DirectX 11 для Nvidia GeForce 980 Ti, тогда как AMD Radeon R9 290x достигла стабильного повышения производительности до 70% под DirectX 12, а в некоторых сценариях AMD превосходила более мощную Nvidia под DirectX 12. Расхождения в производительности могут быть связаны с плохой оптимизацией драйвера Nvidia для DirectX 12 или даже с аппаратными ограничениями карты который был оптимизирован для последовательного выполнения DirectX 11, однако точная причина остается неясной.[49]
API DirectX 12 также представлены в Xbox однако код DirectX 12 не переносится напрямую между ПК и Xbox One из-за внутренних различий между двумя платформами.[50][51] Улучшение производительности DirectX 12 на Xbox не так существенно, как на ПК.[52]
В марте 2018 года была анонсирована технология DirectX Raytracing (DXR), способная выполнять трассировку лучей в реальном времени на поддерживаемом оборудовании.[53] а API DXR был добавлен в обновлении Windows 10 за октябрь 2018 г.
В 2019 году Microsoft объявила о выходе DirectX 12 на Windows 7 но только как плагин для определенных игр.[54]
DirectX 12 Ultimate
Microsoft представила DirectX 12 Ultimate в марте 2020 года. DirectX 12 Ultimate объединит общую библиотеку как на компьютерах с Windows 10, так и на Xbox серии X и другие консоли Xbox четвертого поколения. Среди новых функций Ultimate - DirectX Raytracing 1.1, Variable Rate Shading, который дает программистам контроль над уровнем детализации затенения в зависимости от выбранного дизайна, Mesh Shaders и Sampler Feedback.[55][56]
История версий
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 |
Версия | Дата выхода | Примечания | ||
---|---|---|---|---|
Основной | Незначительный | Число | ||
1 | 1.0 | 4.02.0095 | 30 сентября 1995 г. | |
2 | 2.0 | 1996 | Поставлялся только с несколькими сторонними приложениями | |
2.0a | 4.03.00.1096 | 5 июня 1996 г. | Windows 95 OSR2 и Windows NT 4.0 | |
3 | 3.0 | 4.04.00.0068 | 15 сентября 1996 г. | |
4.04.00.0069 | 1996 | Более поздний пакет DirectX 3.0 включал Direct3D 4.04.00.0069 | ||
3.0a | 4.04.00.0070 | Декабрь 1996 г. | Windows NT 4.0 SP3 (и выше) Последняя поддерживаемая версия DirectX для Windows NT 4.0 | |
3.0b | 4.04.00.0070 | Декабрь 1996 г. | Это было очень незначительное обновление до 3.0a, в котором устранена косметическая проблема японской версии Windows 95. | |
4 | 4.0 | Никогда не выпускал | DirectX 4 так и не был выпущен. Раймонд Чен из Microsoft объяснил в своей книге: Старая новая вещь, что после выпуска DirectX 3 Microsoft одновременно начала разработку версий 4 и 5. Версия 4 должна была быть краткосрочным выпуском с небольшими функциями, тогда как версия 5 была бы более существенным выпуском. Отсутствие интереса разработчиков игр к функциям, заявленным для DirectX 4, привело к тому, что он был отложен, а большое количество документов, которые уже отличали две новые версии, привело к тому, что Microsoft решила не использовать версию 4 повторно для описания функций, предназначенных для этой версии. 5.[57][58] | |
5 | 5.0 | 4.05.00.0155 (RC55) | 4 августа 1997 г. | Доступна как бета-версия для Windows 2000, которая устанавливается в Windows NT 4.0. |
5.2 | 4.05.01.1600 (RC00) | 5 мая 1998 г. | Выпуск DirectX 5.2 для Windows 95 | |
4.05.01.1998 (RC0) | 25 июня 1998 г. | Windows 98 эксклюзивный | ||
6 | 6.0 | 4.06.00.0318 (RC3) | 7 августа 1998 г.[59] | Windows CE как реализовано на Dreamcast и другие устройства |
6.1 | 4.06.02.0436 (RC0) | 3 февраля 1999 г.[60] | ||
6.1a | 4.06.03.0518 (RC0) | 5 мая 1999 г.[61] | Второе издание Windows 98 эксклюзивный | |
7 | 7.0 | 4.07.00.0700 (RC1) | 22 сентября 1999 г.[62][63] | |
4.07.00.0700 | 17 февраля 2000 г. | Windows 2000 | ||
7.0a | 17 декабря 1999 г. | Выпущено только для Windows 95 и 98[64][65] | ||
4.07.00.0716 (RC0) | 8 марта 2000 г. | |||
4.07.00.0716 (RC1) | 2000 | |||
7.1 | 4.07.01.3000 (RC1) | 14 сентября 2000 г.[66] | Windows Me эксклюзивный. Последняя версия со встроенной программной поддержкой рендеринга RGB. | |
8 | 8.0 | 4.08.00.0400 (RC10) | 10 ноября 2000 г.[67] | |
8.0a | 4.08.00.0400 (RC14) | 24 января 2001 г.[68] | Последняя поддерживаемая версия для Windows 95 и последняя версия для поддержки программного рендеринга в dxdiag.exe | |
8.1 | 4.08.01.0810 | 25 октября 2001 г. | Windows XP, Windows XP SP1, Windows Server 2003 и Xbox эксклюзивный | |
4.08.01.0881 (RC7) | 8 ноября 2001 г. | Эта версия предназначена для операционных систем нижнего уровня (Windows 98, Windows Me и Windows 2000 ) | ||
8.1a | 4.08.01.0901 (RC?) | 2002 | Этот выпуск включает обновление для Direct3D (D3d8.dll) | |
8.1b | 4.08.01.0901 (RC7) | 25 июня 2002 г. | Это обновление включает исправление для DirectShow в Windows 2000 (Quartz.dll) | |
8.2 | 4.08.02.0134 (RC0) | 2002 | То же, что DirectX 8.1b, но включает DirectPlay 8.2 | |
9 | 9.0 | 4.09.00.0900 (RC4) | 19 декабря 2002 г. | Периодические гибридные 32-битные / 64-битные обновления были выпущены для DirectX 9, начиная с 4.09.00.0904 (RC0 для DX 9.0c) в октябре 2004 года, выпускались раз в два месяца до августа 2007 года, а затем - ежеквартально. Последнее периодическое обновление было выпущено в июне 2010 г.[69] |
9.0a | 4.09.00.0901 (RC6) | 26 марта 2003 г. | ||
9.0b | 4.09.00.0902 (RC2) | 13 августа 2003 г. | ||
9.0c[70] | 22 июля 2004 г. | Первая версия 9.0c и последняя поддерживаемая версия для Windows 98[71] | ||
4.09.00.0903 | Эксклюзивно для Windows XP SP2 | |||
4.09.00.0904 (RC0) | 4 августа 2004 г.[61] | |||
8 декабря 2006 г. | Последняя поддерживаемая версия для Второе издание Windows 98[71] | |||
4.09.00.0904 | 6 августа 2004 г. / 21 апреля 2008 г. * | Xbox 360, Windows XP SP2, SP3 *, Windows Server 2003 SP1 и Windows Server 2003 R2 | ||
27 октября 2008 г. | Последняя поддерживаемая версия для Windows Me | |||
10 | 10 | 6.00.6000.16386 | 30 ноября 2006 г. | Виндоус виста эксклюзивный |
10.1 | 6.00.6001.18000 | 4 февраля 2008 г. | Windows Vista с пакетом обновления 1 (SP1), Windows Server 2008 Включает Direct3D 10.1 | |
6.00.6002.18005 | 28 апреля 2009 г. | Windows Vista с пакетом обновления 2 (SP2), Windows Server 2008 с пакетом обновления 2 (SP2) Включает Direct3D 10.1 | ||
11 | 11 | 6.01.7600.16385 | 22 октября 2009 г. | Windows 7, Windows Server 2008 R2 |
6.00.6002.18107 | 27 октября 2009 г. | Windows Vista с пакетом обновления 2 (SP2) и Windows Server 2008 с пакетом обновления 2 (SP2) через Обновление платформы для Windows Vista и Windows Server 2008[72] | ||
6.01.7601.17514 | 16 февраля 2011 г. | Windows 7 с пакетом обновления 1 (SP1), Windows Server 2008 R2 с пакетом обновления 1 (SP1) | ||
11.1 | 6.02.9200.16384 | 1 августа 2012 г. | Windows 7 с пакетом обновления 1 (SP1), Windows 8, Windows RT, Windows Server 2012 | |
11.2 | 6.03.9600.16384 | 18 октября 2013 г. | Windows 8.1, Windows RT, Windows Server 2012 R2, Xbox One | |
12 | 12 | 10.00.10240.16384 | 29 июля 2015 г. | Windows 10, Xbox One |
10.00.15063.0000 | 20 марта 2017 г. | Windows 10, Добавлено тестирование границ глубины и программируемый MSAA[73][74] | ||
10.00.17763.0000 | 20 ноября 2019 г., | Windows 7 с пакетом обновления 1 (SP1)[75] | ||
10.00.17763.0001 | 2 октября 2018 г. | Windows 10, DirectX Трассировка лучей поддержка добавлена[76] | ||
10.00.18362.0116 | 19 мая, 2019 | Windows 10, Добавлена поддержка шейдинга с переменной скоростью (VRS)[77] |
Номер версии, сообщенный Microsoft DxDiag инструмент (версия 4.09.0000.0900 и выше) используйте формат x.xx.xxxx.xxxx для номеров версий. Однако DirectX и Windows XP MSDN страница утверждает, что реестр всегда был в формате x.xx.xx.xxxx. Поэтому, когда в приведенной выше таблице указана версия как «4.09.00.0904» Microsoft DxDiag инструмент может иметь это как «4.09.0000.0904».[78]
Совместимость
Различные выпуски Windows включали и поддерживали различные версии DirectX, позволяя более новым версиям операционной системы продолжать работу приложений, разработанных для более ранних версий DirectX, до тех пор, пока эти версии не будут постепенно заменены на новые API, драйверы и оборудование.[79]
API, такие как Direct3D и DirectSound, должны взаимодействовать с оборудованием, и они делают это через драйвер устройства. Производители оборудования должны написать эти драйверы для интерфейса драйвера устройства конкретной версии DirectX (или DDI) и протестировать каждую отдельную часть оборудования, чтобы сделать их совместимыми с DirectX. Некоторые аппаратные устройства имеют только драйверы, совместимые с DirectX (другими словами, необходимо установить DirectX, чтобы использовать это оборудование). Ранние версии DirectX включали обновленную библиотеку всех доступных в настоящее время драйверов, совместимых с DirectX. Однако эта практика была прекращена в пользу веб- Центр обновления Windows система обновления драйверов, позволяющая пользователям загружать только драйверы, относящиеся к их оборудованию, а не всю библиотеку.
До DirectX 10 среда выполнения DirectX была разработана так, чтобы обратная совместимость со старыми драйверами, а это означает, что новые версии API были разработаны для взаимодействия со старыми драйверами, написанными для DDI предыдущей версии. Программист приложения должен был запросить доступные аппаратные возможности, используя сложную систему «ограничительных битов», каждая из которых привязана к определенной аппаратной функции.Direct3D 7 и более ранние версии будут работать с любой версией DDI, Direct3D 8 требует минимального уровня DDI 6, а Direct3D 9 требует минимального уровня DDI 7.[80]Однако среда выполнения Direct3D 10 в Windows Vista не может работать на старых драйверах оборудования из-за значительно обновленного DDI, который требует унифицированного набора функций и отказывается от использования «ограничительных битов».
Direct3D 10.1 вводит "уровни функций «10_0 и 10_1, которые позволяют использовать только аппаратные функции, определенные в указанной версии Direct3D API. Direct3D 11 добавляет уровень 11_0 и «10 уровень 9» - подмножество Direct3D 10 API, разработанное для работы на оборудовании Direct3D 9, которое имеет три уровня функций (9_1, 9_2 и 9_3), сгруппированных по общим возможностям: «низкий», «средний» и видеокарты «высокого класса»; среда выполнения напрямую использует Direct3D 9 DDI, предусмотренный во всех драйверах WDDM. Уровень функций 11_1 был представлен с Direct3D 11.1.
.NET Framework
В 2002 году Microsoft выпустила версию DirectX, совместимую с Microsoft. .NET Framework, что позволяет программистам использовать преимущества функций DirectX из приложений .NET с использованием совместимых языков, таких как управляемый C ++ или использование C # язык программирования. Этот API был известен как "Управляемый DirectX "(или для краткости MDX) и утверждал, что работает на 98% производительности базовых API DirectX. В декабре 2005 г., феврале 2006 г., апреле 2006 г. и августе 2006 г. Microsoft выпустила последовательные обновления этой библиотеки, кульминацией которых стала бета-версия версия под названием Managed DirectX 2.0. В то время как Managed DirectX 2.0 объединил функциональность, которая ранее была разбросана по нескольким сборкам в одну сборку, что упростило зависимости от нее для разработчиков программного обеспечения, разработка этой версии впоследствии была прекращена, и она больше не поддерживается. Срок действия библиотеки Managed DirectX 2.0 истек 5 октября 2006 г.
Вовремя GDC 2006, Microsoft представила XNA Framework, новая управляемая версия DirectX (похожая, но не идентичная Managed DirectX), которая предназначена для помощи в разработке игр, облегчая интеграцию DirectX, HLSL и других инструментов в один пакет. Он также поддерживает выполнение управляемого кода на Xbox 360. XNA Game Studio Express RTM был доступен для бесплатной загрузки 11 декабря 2006 г. для Windows XP. В отличие от среды выполнения DirectX, Управляемый DirectX, XNA Framework или Xbox 360 API (XInput, XACT и т. Д.) Не поставляются как часть Windows. Ожидается, что разработчики будут распространять компоненты среды выполнения вместе со своими играми или приложениями.
Ни один продукт Microsoft, включая последние выпуски XNA, не поддерживает DirectX 10 для .NET Framework.
Другой подход для DirectX на управляемых языках - использование сторонних библиотек, например:
- SlimDX, библиотека с открытым исходным кодом для программирования DirectX на .NET Framework
- SharpDX,[81][82] который представляет собой проект с открытым исходным кодом, предоставляющий полный API DirectX для .NET на всех платформах Windows, позволяющий разрабатывать высокопроизводительные игры, рендеринг 2D и 3D графики, а также звуковые приложения в реальном времени.
- DirectShow.NET для подмножества DirectShow
- Пакет Windows API CodePack для .NET Framework, это библиотека с открытым исходным кодом от Microsoft.
Альтернативы
Есть альтернативы семейству DirectX API, с OpenGL, его преемник Вулкан, Металл и Мантия имеющий большинство функций, сопоставимых с Direct3D. Примеры других API включают SDL, Аллегро, OpenMAX, OpenML, OpenAL, OpenCL, FMOD, SFML и т.д. Многие из этих библиотек являются кроссплатформенными или имеют открытые кодовые базы. Существуют также альтернативные реализации, которые стремятся предоставить тот же API, например, в Вино. Кроме того, разработчики ReactOS пытаются заново реализовать DirectX под названием «ReactX».
Смотрите также
- DxDiag
- Direct3D
- Вулкан (API)
- Простой слой DirectMedia
- Сравнение OpenGL и Direct3D
- Интерфейс графического устройства (GDI)
- Графический конвейер
- Плагин DirectX
- ActiveX
- Обнаружение и восстановление тайм-аута
Рекомендации
- ^ "Технические страницы Dreamcast". Июнь 1999 г.
- ^ «Microsoft: значение Xbox - The Economist». Экономист.
- ^ «Справка по DirectX». computerhope.com.
- ^ "Где находится DirectX SDK?". microsoft.com. Microsoft.
- ^ Тайнан, Дэн (26 мая 2006 г.). «25 худших технологических продуктов всех времен». Компьютерный мир. Получено 20 сентября, 2015.
- ^ "DirectX". Энциклопедия Британника. Получено 30 сентября, 2020.
- ^ "54 Что такое DCI?". stason.org.
- ^ Сообщение в блоге Крейга Эйслера об безумии создания DirectX с 1 по 5 на craig.theeislers.com
- ^ Джей Барсон (13 июля 2006 г.). "Сказки необузданного койота". Архивировано из оригинал 17 июля 2006 г.
- ^ «Обзор продукта Windows NT 3.51». Microsoft. 31 октября 2006 г. Архивировано с оригинал 29 ноября 2012 г.. Получено 16 сентября, 2010.
- ^ Дж. Аллард, PC Pro Интервью В архиве 2007-10-11 на Wayback Machine, Апрель 2004 г.
- ^ «Windows Phone 8 добавляет DirectX, встроенную разработку, упрощает перенос приложений». 20 июня 2012 г.. Получено 23 июня, 2012.
- ^ "Интервью с Алексом Сент-Джоном". 28 марта 2007 г.. Получено 31 августа, 2011.
- ^ а б Дэвид Крэддок (март 2007 г.). "Интервью с Алексом Сент-Джоном, стр. 2". Новости Хижины. В архиве с оригинала от 1 июня 2008 г.
- ^ 3D анимация КОСМИЧЕСКОГО БОЕЦ ОТ ПРЯМОЙ АНИМАЦИИ[постоянная мертвая ссылка ]
- ^ «Объекты DirectX Media». DirectShow. Документы Microsoft. 5 июня 2019.
DMO были заменены Media Foundation Transforms (MFT).
- ^ «DirectX 9: Использование API управляемой графики Direct3D в .NET». microsoft.com. Microsoft.
- ^ "Пространство имен Microsoft.Xna.Framework.Graphics". microsoft.com. Microsoft.
- ^ «ПИКС».
- ^ https://web.archive.org/web/20101018035741/http://msdn.microsoft.com/en-gb/library/ee416979(VS.85).aspx
- ^ «Часто задаваемые вопросы о DirectX». microsoft.com. Microsoft.
- ^ Чак Уолборн (август 2009 г.). «Графические API в Windows». MSDN. Получено 3 октября, 2009.
- ^ Альбанезиус, Хлоя (29 августа 2007 г.). «Microsoft выпускает первый пакет обновления для Vista». Журнал ПК. Получено 29 августа, 2007.
- ^ «Microsoft представляет подробности о DirectX 10.1 на SIGGRAPH». 7 августа 2007 г.. Получено 27 августа, 2007.
- ^ "Learn Network Inspire" (PDF). AMD. Архивировано из оригинал (PDF) 10 апреля 2012 г.. Получено 30 декабря, 2012.
- ^ «DirectX 10.1 не требует нового графического процессора». Windows Vista: полное руководство. 5 марта 2008 г. Архивировано с оригинал 29 октября 2007 г.. Получено 5 марта, 2008.
- ^ «Что будет дальше с DirectX? Обзор DirectX 11 - Обзор DirectX 11». Элитные ублюдки. 1 сентября 2008 г.. Получено 4 сентября, 2008.
- ^ «DirectX 11: взгляд на будущее». bit-tech.net. 17 сентября 2008 г.
- ^ Дата выпуска Windows 7 и D3D 11 В архиве 2011-10-09 на Wayback Machine
- ^ «Блоги MSDN». msdn.com. Microsoft.
- ^ «Загрузите пакет разработки программного обеспечения DirectX из официального центра загрузки Microsoft». microsoft.com. Microsoft.
- ^ «Руководство по предварительной версии для разработчиков Windows 8» (PDF). Архивировано из оригинал (PDF) 7 октября 2011 г.
- ^ «Обновление платформы для Windows 7 (Windows)». Msdn.microsoft.com. Получено 9 августа, 2014.
- ^ Пуйя Эймандар (2013). DirectX 11.1 Программирование игр. Packt Publishing Ltd. стр. 45. ISBN 978-1-84969-481-0.
- ^ а б «Как установить последнюю версию DirectX». Служба поддержки Microsoft. Microsoft. Получено 27 октября, 2017.
- ^ «Обзор геометрических реализаций». microsoft.com. Microsoft.
- ^ Беннетт Сорбо (26 июня 2013 г.). «Что нового в Direct3D 11.2». Канал9 - СТРОИТЬ 2013. около 20:00.
- ^ «Microsoft официально отказывается от использования Mantle». semiaccurate.com.
- ^ Крис Тектор. http://channel9.msdn.com/Blogs/DirectX-Developer-Blog/DirectX-Evolving-Microsoft-s-Graphics-Platform (начиная примерно с 18 мин.)
- ^ Смит, Райан (18 сентября 2014 г.). «Microsoft подробно описывает Direct3D 11.3 и 12 новых функций рендеринга». АнандТех. Получено 6 ноября, 2014.
- ^ Макмаллен, Макс (2 апреля 2014 г.). «Предварительная версия Direct3D 12 API». Канал 9. Microsoft.
- ^ Мур, Бо (5 мая 2015 г.). «DirectX 12 сможет использовать ваш встроенный графический процессор для повышения производительности». ПК-геймер. Будущее США. Получено 22 августа, 2015.
- ^ Мишо, Скотт (4 мая 2015 г.). «СТРОИТЬ 2015: окончательное раскрытие DirectX 12». Перспектива ПК. Перспектива ПК. Архивировано из оригинал 5 сентября 2015 г.. Получено 22 августа, 2015.
- ^ Лэнгли, Брайан (29 июля 2015 г.). «Выпущены Windows 10 и DirectX 12!». Блог разработчиков MSDN DirectX. Microsoft. Получено 22 августа, 2015.
- ^ Юнг, Эндрю (30 апреля 2015 г.). «Мультиадаптер DirectX 12: осветите бездействующий кремний и заставьте его работать на вас». Блог разработчиков MSDN DirectX. Microsoft. Получено 22 августа, 2015.
- ^ Райан Смит. «AnandTech - Microsoft объявляет о выпуске DirectX 12: низкоуровневое программирование графики переходит в DirectX». anandtech.com.
- ^ Юнг, Эндрю (13 августа 2014 г.). «DirectX 12 - высокая производительность и высокая экономия энергии». Блог разработчиков DirectX. Microsoft.
- ^ Лауритцен, Эндрю (11 августа 2014 г.). «SIGGRAPH 2014: DirectX 12 на Intel». Зона разработчика. Intel.
- ^ Уолтон, Марк (19 августа 2015 г.). «Тестирование DirectX 12: ранняя победа для AMD и разочарование для Nvidia». Ars Technica UK. Получено 19 августа, 2015.
- ^ «GoW4 Dev о повышении производительности DX12, проблемах Xbox One S, ESRAM и Ultimate Edition на ПК». Получено 15 июля, 2018.
- ^ «Разработчик id Software озадачен тем, что разработчики выбрали DX12 вместо Vulkan, заявляет, что Xbox One DX12 отличается от ПК« GamingBolt.com: Новости видеоигр, обзоры, превью и блог ». gamingbolt.com. Получено 1 марта, 2017.
- ^ «Руководитель Xbox One предупреждает игроков, что не стоит ожидать кардинальных улучшений от DirectX 12 - ExtremeTech». ExtremeTech. Получено 30 сентября, 2014.
- ^ «Представляем Microsoft DirectX Raytracing!». Microsoft.
- ^ «Microsoft переносит DirectX 12 на Windows 7, повышая производительность некоторых старых компьютерных игр». PCWorld. 13 марта 2019 г.,. Получено 17 апреля, 2019.
- ^ «Анонс DirectX 12 Ultimate». Microsoft. 19 марта 2020 г.. Получено 20 марта, 2020.
- ^ Керр, Крис (20 марта 2020 г.). «Microsoft запускает DirectX 12 Ultimate для поддержки графики следующего поколения». Гамасутра. Получено 20 марта, 2020.
- ^ Чен, Раймонд (2006). «Этимология и история». Старая новая вещь (1-е изд.). Pearson Education. п. 330. ISBN 0-321-44030-7.
- ^ «Что случилось с DirectX 4? - Старая новая вещь - Домашняя страница сайта - Блоги MSDN». Blogs.msdn.com. 22 января 2004 г.. Получено 30 декабря, 2012.
- ^ «Microsoft поставляет финальную версию DirectX 6.0». Microsoft.com. 7 августа 1998 г. В архиве с оригинала 26 августа 2015 г.. Получено 19 июля, 2019.
- ^ «Microsoft поставляет DirectX 6.1». Microsoft.com. 3 февраля 1999 г. В архиве с оригинала 26 августа 2015 г.. Получено 19 июля, 2019.
- ^ а б «Microsoft DirectX - часто задаваемые вопросы». ActiveWin.com. Архивировано из оригинал 10 февраля 2003 г.. Получено 30 августа, 2019.
- ^ «Microsoft поставляет финальную версию DirectX 7.0». Microsoft.com. 22 сентября 1999 г. В архиве с оригинала 19 июля 2019 г.. Получено 19 июля, 2019.
- ^ Пол Турротт (21 сентября 1999 г.). «Microsoft выпускает DirectX 7.0». ITProToday. В архиве с оригинала 17 апреля 2019 г.. Получено 19 июля, 2019.
- ^ "Центр загрузки: DirectX / Версия - 7.0a". Microsoft.com. Архивировано из оригинал 8 апреля 2000 г.. Получено 20 июля, 2019.
- ^ Маартен Гольдштейн (18 декабря 1999 г.). «Выпущен DirectX 7A». Shacknews. В архиве с оригинала 20 июля 2019 г.. Получено 20 июля, 2019.
- ^ Пол Турротт (14 сентября 2000 г.). «Обзор Windows Millennium Edition (Windows Me)». ITProToday. В архиве с оригинала 13 июня 2018 г.. Получено 21 июля, 2019.
- ^ Админ (10 ноября 2000 г.). «Утечка DirectX 8». Geek.com. Архивировано из оригинал 12 июля 2016 г.. Получено 20 июля, 2019.
- ^ "DirectX 8.0a Redist". Microsoft.com. 24 января 2001 г. Архивировано с оригинал 31 марта 2001 г.. Получено 20 июля, 2019.
- ^ «Загрузите среду выполнения DirectX для конечных пользователей (июнь 2010 г.) из официального центра загрузки Microsoft». microsoft.com. Microsoft.
- ^ «Загрузите веб-установщик среды выполнения DirectX для конечного пользователя из официального центра загрузки Microsoft». microsoft.com. Microsoft.
- ^ а б «Загрузки MicroSoft DirectX для Windows (Win95, Win98, Win98SE, WinME, Win2000, WinXP) - полная история выпусков, включая DirectX1, DirectX2, DirectX3, DirectX5, DirecX6, DirecX7, DirecX8, DirecX9». falconfly.3dfx.pl. Получено 5 августа, 2018.
- ^ «Microsoft обновляет Windows Vista до DirectX 11». pcgameshardware.com.
- ^ https://docs.microsoft.com/en-us/windows/uwp/whats-new/windows-10-build-15063
- ^ https://blogs.msdn.microsoft.com/directx/2017/11/07/announcing-new-directx-12-features/
- ^ https://microsoft.github.io/DirectX-Specs/d3d/D3D12onWin7.html
- ^ https://blogs.msdn.microsoft.com/directx/2018/10/02/directx-raytracing-and-the-windows-10-october-2018-update/
- ^ https://devblogs.microsoft.com/directx/variable-rate-shading-a-scalpel-in-a-world-of-sledgehammers/
- ^ DirectX и Windows XP[постоянная мертвая ссылка ]
- ^ support.microsoft.com https://support.microsoft.com/en-in/help/15061/windows-which-version-directx. Получено 30 сентября, 2020. Отсутствует или пусто
| название =
(помощь) - ^ MSN. «Минимальные требования DDI». Microsoft. Получено 2 августа, 2012.
- ^ «SharpDX - управляемый DirectX». Получено 30 сентября, 2014.
- ^ "Sharpdx / SharpDX". GitHub. Получено 30 сентября, 2014.