Directx 9 что это такое

Обновлено: 05.07.2024

Стандарт интерфейса программирования Microsoft, впервые включенный в Windows 95. DirectX предоставляет программистам (игр) стандартный способ получить прямой доступ к расширенным аппаратным функциям в Windows 95 вместо использования Windows 95 GDI. Некоторый код DirectX работает быстрее, чем его аналог в MS DOS.

DirectX обещает повышение производительности графики, звука, видео, 3D и сетевых возможностей игр, но только там, где и аппаратное, и программное обеспечение поддерживают DirectX.

Последняя версия: 8.1 (по состоянию на 31 декабря 2001 г.).

DirectX

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

Первый DirectX API был представлен в конце 1995 года, чтобы побудить разработчиков игр перенести свое программное обеспечение на Windows. До DirectX игры для ПК писались в DOS, чтобы достаточно быстро перерисовывать экран для анимации в реальном времени. Чтобы добиться такой скорости, игровым компаниям приходилось писать драйверы для различных видеокарт, что было головной болью разработчиков.

Единый графический интерфейс для Windows
DirectX предоставляет интерфейс для доступа к буферу кадров и расширенным функциям графической карты, которые не предусмотрены в стандартном графическом интерфейсе Windows GDI. Когда был представлен DirectX, поставщики быстро разработали драйверы, которые предоставили приложению низкоуровневые функции графического оборудования.

Эмуляция графических функций в программном обеспечении
С помощью уровня аппаратной эмуляции (HEL) DirectX может эмулировать графические функции в программном обеспечении, которое не встроено в видеокарту. См. графический конвейер.

Какая версия DirectX работает?
Чтобы определить, какая версия DirectX установлена ​​на вашем ПК, выберите «Выполнить» в меню «Пуск», введите dxdiag и нажмите «ОК». Найдите в разделе «Информация о системе» номер версии DirectX. См. DirectX 10, DirectX 11, GDI, видеоускоритель и DirectSound.

Авторское право © 1981-2022 The Computer Language Company Inc. Все права защищены. ЭТО ОПРЕДЕЛЕНИЕ ПРЕДНАЗНАЧЕНО ТОЛЬКО ДЛЯ ЛИЧНОГО ИСПОЛЬЗОВАНИЯ. Любое другое воспроизведение строго запрещено без разрешения издателя.

Я не очень хорошо разбираюсь в компьютерах, и мне было интересно, что на самом деле делает Direct X на моем ПК.

Почему разные игры запрашивают разные версии? Должна ли последняя версия охватывать их все или некоторые игры поддерживают только определенные версии?

Допустим, я решил не устанавливать версию Direct X, включенную в установщик, так как у меня есть последняя версия, могу ли я сказать, что она, по крайней мере, не столкнется с какими-либо проблемами?

Краткий технический ответ: если в играх Dx9 возникают проблемы, попробуйте использовать веб-установщик Dx или установите Dx9 June 2010. Если игра предлагает установить DirectX, нажмите «Да», просто на всякий случай (не должно быть никаких плохих последствий).

4 ответа 4

TL;DR: DirectX — это распространяемая библиотека, которая помогает игре взаимодействовать с вашим оборудованием. DirectX должен поддерживать более ранние версии и, как предполагает PTwr, часто является виновником сообщений «отсутствует DLL d3dx9_[somenumber].dll». Требуемая версия всегда должна быть включена в процесс установки игры, поэтому часто у вас будет несколько версий.

DirectX — это просто программное обеспечение посередине, которое действует как переводчик между вашей графической картой и игрой, в которую вы играете, среди прочего 1 . Важно, чтобы у вас была версия, необходимая для видеоигры, или выше. Насколько я видел, наличие более новой версии не должно быть проблемой; тем не менее, я никогда не видел игры, в программе установки которой отсутствовала необходимая версия DirectX, так что в любом случае проблем быть не должно.

Новые версии DirectX работают с новыми функциями видеокарты; например, игра, использующая DirectX 9, теоретически требует меньше графической обработки, чем игра, использующая DirectX 10. Разумеется, это не учитывает способности разработчика.

Чтобы уточнить, зачем нам это нужно, скажем, что каждая компьютерная графическая карта говорит на своем языке. Набор карт от одного производителя может говорить почти на одном языке, но это не будет точно, как два человека, говорящие по-китайски, только на разных диалектах. На заре компьютерных игр вам нужно было убедиться, что ваша графическая карта действительно указана в списке поддерживаемых карт. Вам придется просмотреть небольшой список карт и попытаться найти точный номер модели. И если разработчики решили, что не хотят намеренно добавлять поддержку, очень жаль. С компьютерами может быть невероятно сложно работать, даже при малейшем несоответствии. Точка в неправильном месте может привести к сбою всей системы.

DirectX был создан как средство борьбы с этой очевидной проблемой. Разработчики игр писали бы об использовании библиотек DirectX, как и производители видеокарт. В наши дни вместо того, чтобы искать модель вашей видеокарты в списке потенциально сотен перечисленных моделей, вам нужно только убедиться, что ваша видеокарта совместима с этой версией DirectX.

Кстати, DirectX был создан Microsoft. В результате любая игра с явными требованиями DirectX, скорее всего, будет корректно работать только в Windows. Вот почему довольно сложно играть в большинство игр на системе *nix или Mac.

1 DirectX расширился, чтобы облегчить другие мультимедийные функции в Windows, но в первую очередь он связан с графическими возможностями. Технически, графический компонент DirectX известен как Direct3D, в то время как другие части включают DirectShow для мультимедиа, DirectWrite для шрифтов и т. д.


Я считаю, что упоминание о библиотеках повторного распространения DX может быть полезным, так как их отсутствие является довольно распространенной проблемой ("отсутствует d3dx9_[somenumber].dll" ). И TLDR может быть «у dx10+ обратная совместимость с dx9, но вам нужны повторные списки» (штучка на уровне функций)

@CarstenS с Directx9 (выпущенным в 2002 г.) и выше — все в порядке, однако с более старыми версиями поддержки давно нет, поэтому виртуальная машина с Win98/XP — ваш лучший/самый простой выбор. Даже эмуляция будет иметь более чем достаточную мощность для этих старичков, и в любом случае следует ожидать проблем с совместимостью. Короче говоря, для игр, выпущенных в последнее десятилетие, вам не о чем беспокоиться.

@CarstenS На самом деле, проблема, с которой вы столкнулись, как раз и предназначена для DirectX: чтобы производители игр не беспокоились об оборудовании, которое будет использоваться для запуска их игр. Пока производители оборудования делают свое оборудование совместимым с DirectX, любая игра, использующая его, должна просто работать. В наши дни сделать ваше оборудование несовместимым с DirectX означает, что, по всей вероятности, вы не сможете много продавать.

@JoeWallis, это просто означает, что игры DirectX изначально работают только в Windows. В данном случае спрашивающий не спрашивает об альтернативах, поэтому уточнение не добавляет к вопросу сути.

@JoeWallis Версия этих игр, которая работает на системах *nix, не является DirectX. В противном случае он не будет работать на системах * nix без чего-то вроде вина. Просто в их движке есть серверные части DirectX и OpenGL.

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

Во времена, когда еще не было DirectX, у программ для Windows был один из двух вариантов взаимодействия с видеокартой:

  • Первый вариант заключался в том, что они могли писать на карту через Windows API. Они передают свои запросы Windows, а Windows делает кучу вещей в фоновом режиме и в конечном итоге записывает эти данные на видеокарту. Большинство старых 2D-игр могли бы обойтись с этим (например, Minesweeper и Solitare), поскольку задержка не была для них проблемой.
  • Вариант второй: они могли писать против самих драйверов видеокарты. Это означало, что вам нужно было поддерживать разные версии механизма рендеринга вашей программы в зависимости от того, какое оборудование было установлено на ПК. Не совсем оптимальное решение, но сработало намного быстрее.

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

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

Теперь мы подошли к установке DirectX. Компоненты DirectX в Windows поставляются с последними версиями ОС, но DirectX — это стандарт, который имеет тенденцию развиваться по мере роста и изменения видеокарт и программ, которые их используют. Таким образом, Microsoft предоставляет установщики, которые могут быть связаны с играми, чтобы довести версию DirectX на вашем компьютере до версии, требуемой игрой.

Абсолютно безопасно устанавливать более раннюю версию распространяемого пакета DirectX, так как если установщик DirectX понимает, что он устарел по сравнению с тем, что установлено на вашем компьютере, он просто завершает работу, ничего не делая.Существуют также различные основные версии DirectX, с помощью которых можно создать игру (например, DirectX 9 или DirectX 11), но эти версии мирно сосуществуют, и их собственные версии устанавливаются одновременно.

OpenGL не имеет открытого исходного кода. OpenGL — это спецификация, и существуют его реализации с открытым исходным кодом (например, Mesa 3D) и реализации без такового (например, в Windows).

(Причина, по которой это не относится к DirectX, заключается в том, что для DirectX реализация Microsoft является спецификацией, то есть ваша реализация должна делать именно то, что делает Microsoft, а исходный код Microsoft не является открытым)< /p>

DirectX — это три разных вещи в зависимости от того, являетесь ли вы геймером или разработчиком и какой версией Windows вы пользуетесь. Раньше DirectX был надстройкой, которую можно было обновить в более старых версиях Windows, но в текущих версиях Windows DirectX является компонентом ОС, который нельзя обновить. Это также SDK, который разработчики используют для создания игр, использующих DirectX. В наши дни, когда игра устанавливает DirectX, она фактически устанавливает часть DirectX SDK, а не сам DirectX, который предназначен для распространения среди пользователей. Это всегда безопасно. Он может ничего не делать, потому что то, что он устанавливает, уже существует, но он никогда не понизит версию DirectX. Поскольку все версии DirectX обратно совместимы с более ранними версиями, нет необходимости переходить на более раннюю версию.

DirectX как надстройка

DirectX, по сути, был надстройкой для Windows до Windows XP SP2. Он не считался частью самой операционной системы Windows, и в Microsoft над продуктом работала другая команда разработчиков «DirectX» отдельно от разработчиков «Windows». Хотя он поставлялся с Windows, начиная с Windows 95 OSR2 и Windows NT 4.0, его можно было обновить отдельно от операционной системы, и поэтому он не считался ее частью.

Именно из этой эпохи мы получили представление об играх, устанавливающих DirectX. В наши дни это не совсем то, что происходит, но раньше игры действительно устанавливали или обновляли DirectX. Если в игре используются интерфейсы DirectX 7, она обычно включает установщик среды выполнения DirectX 7 и предлагает установить его как часть установки игры. Если DirectX 7 или новее уже установлен, то программа установки ничего не сделает. В противном случае он установит или обновит DirectX.

DirectX как компонент ОС

В настоящее время DirectX считается частью Windows, которую нельзя обновить отдельно. Если вы используете Windows XP SP2 или SP3, Windows Vista, Windows 7, Windows 8 или Windows 10, то игры не могут обновить используемую вами версию DirectX. Хотя они могут поставляться с установщиком среды выполнения DirectX 9.0c, последней версией DirectX, для которой Microsoft предоставила ее, она не обновит установленную вами версию DirectX, поскольку DirectX 9.0c или более поздняя версия уже установлена.

DirectX как SDK

DirectX также имел отдельный компонент SDK (Software Development Kit). SDK предоставил файлы и документацию, необходимые разработчикам для создания игр и приложений, использующих DirectX. Он также содержал код поддержки, написанный Microsoft и предназначенный для упрощения создания игр, использующих DirectX.

В частности, она предоставила библиотеку D3DX, содержащую код, предназначенный для использования в играх, использующих Direct3D. В то время как Direct3D позволял программистам делать то, что они не могли сделать без него, то есть получать доступ к аппаратному обеспечению ускоренного рендеринга видеокарты, библиотека D3DX представляла собой весь код, который программисты могли написать сами. Это просто избавило их от необходимости делать это. Поскольку это не было необходимо и не делало ничего особенного, оно не предоставлялось как часть среды выполнения DirectX. Разработчики могли просто включать в свои игры любые его части, которые они хотели использовать, если таковые имеются. Код D3DX становился неотъемлемой частью игры, обычно как часть исполняемого файла игры (.EXE), как если бы они написали его сами.

Однако однажды Microsoft решила изменить порядок использования разработчиками библиотеки D3DX. Они превратили его в DLL, которую игра установила бы, если бы захотела ее использовать, подобно тому, как игры использовали для установки среды выполнения DirectX. На самом деле они использовали один и тот же установщик для обоих. Установщик, предоставленный Microsoft, устанавливает среду выполнения DirectX 9.0c и/или D3DX DLL в зависимости от того, какие файлы были упакованы вместе с ним.

Поэтому, несмотря на то, что современные игры содержат установщик DirectX, который на самом деле не устанавливает DirectX, он часто устанавливает DLL D3DX (и/или одну из нескольких других DLL, поставляемых с DirectX SDK). Каждая версия DirectX SDK, которая поставлялась с D3DX DLL, имела собственную отдельно пронумерованную DLL (от d3dx9_24.dll до d3d9_43.dll .Каждая игра устанавливает только ту версию библиотеки DLL, которую они используют, поэтому возможно, что даже если многие другие игры «установили DirectX», они не установили версию D3DX, необходимую для игры, которую вы устанавливаете сейчас.

В настоящее время Microsoft больше не предоставляет отдельный DirectX SDK. Подобно тому, как среда выполнения DirectX стала частью операционной системы Windows, Direct SDK теперь является частью Windows SDK. Они также перестали обновлять библиотеку D3DX. Вместо этого Microsoft рекомендует разработчикам использовать сторонние библиотеки, которые они могут включать в свои игры и которые не нужно устанавливать отдельно.

Игры, которые устанавливают DirectX сегодня

Когда игра устанавливает DirectX, не беспокойтесь об этом. Если он спросит, хотите ли вы установить DirectX, то самым безопасным вариантом будет сказать «да». Установщики среды выполнения DirectX не понизят установленную версию DirectX. Мало того, что они не будут, Windows предотвратит их, если они попытаются, так как DirectX теперь является защищенной частью операционной системы. Хотя в современной версии Windows это фактически не изменит установленную версию DirectX, установщик может по-прежнему устанавливать библиотеки DLL, которые нужны игре.

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

DirectX также полностью обратно совместим. Если вы используете Windows 10, то у вас есть не только новейшие интерфейсы DirectX 12, но и Windows также предоставляет все предыдущие интерфейсы. За исключением некоторых других несовместимостей, вы можете играть в игры, разработанные для Windows 95 и оригинальной версии DirectX.

С другой стороны, если вы используете Windows Vista, вам доступны только интерфейсы DirectX 10. Вы не можете играть в игры, для которых требуется DirectX 11 или 12. Вы также не можете выполнить обновление до DirectX 11 или 12. Чтобы играть в игры, для которых требуется DirectX 11, вам необходимо выполнить обновление как минимум до Windows 7. Если вы хотите воспользоваться преимуществами функций в игре, для которой требуется DirectX 12, вам потребуется выполнить обновление до Windows 10.

Стандарт интерфейса программирования Microsoft, впервые включенный в Windows 95. DirectX предоставляет программистам (игр) стандартный способ получить прямой доступ к расширенным аппаратным функциям в Windows 95 вместо использования Windows 95 GDI. Некоторый код DirectX работает быстрее, чем его аналог в MS DOS.

DirectX обещает повышение производительности графики, звука, видео, 3D и сетевых возможностей игр, но только там, где и аппаратное, и программное обеспечение поддерживают DirectX.

Последняя версия: 8.1 (по состоянию на 31 декабря 2001 г.).

DirectX

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

Первый DirectX API был представлен в конце 1995 года, чтобы побудить разработчиков игр перенести свое программное обеспечение на Windows. До DirectX игры для ПК писались в DOS, чтобы достаточно быстро перерисовывать экран для анимации в реальном времени. Чтобы добиться такой скорости, игровым компаниям приходилось писать драйверы для различных видеокарт, что было головной болью разработчиков.

Единый графический интерфейс для Windows
DirectX предоставляет интерфейс для доступа к буферу кадров и расширенным функциям графической карты, которые не предусмотрены в стандартном графическом интерфейсе Windows GDI. Когда был представлен DirectX, поставщики быстро разработали драйверы, которые предоставили приложению низкоуровневые функции графического оборудования.

Эмуляция графических функций в программном обеспечении
С помощью уровня аппаратной эмуляции (HEL) DirectX может эмулировать графические функции в программном обеспечении, которое не встроено в видеокарту. См. графический конвейер.

Какая версия DirectX работает?
Чтобы определить, какая версия DirectX установлена ​​на вашем ПК, выберите «Выполнить» в меню «Пуск», введите dxdiag и нажмите «ОК». Найдите в разделе «Информация о системе» номер версии DirectX. См. DirectX 10, DirectX 11, GDI, видеоускоритель и DirectSound.

Авторское право © 1981-2022 The Computer Language Company Inc. Все права защищены. ЭТО ОПРЕДЕЛЕНИЕ ПРЕДНАЗНАЧЕНО ТОЛЬКО ДЛЯ ЛИЧНОГО ИСПОЛЬЗОВАНИЯ. Любое другое воспроизведение строго запрещено без разрешения издателя.

Установите DirectX 9 в Windows 10, чтобы повысить производительность в старых видеоиграх, а также исправить различные проблемы, сбои и ошибки, с которыми вы можете столкнуться.

Это руководство применимо для любой старой игры, которая работает на старых версиях DirectX.

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

Изначально названия всех этих API начинались с Direct, например Direct3D, DirectDraw, DirectMusic, DirectPlay, DirectSound и т. д.Название DirectX было сформировано как краткая форма всех API-интерфейсов (X заменяет конкретные имена API), а позже стало названием всей коллекции API-интерфейсов. Когда позже Microsoft решила разработать игровую консоль, буква X использовалась в качестве основы для названия Xbox, чтобы указать, что консоль основана на той же технологии DirectX. Начальная буква X была перенесена в названия API-интерфейсов, разработанных для Xbox, таких как XInput и кросс-платформенный инструмент для создания аудио (XACT), в то время как шаблон DirectX был продолжен для API-интерфейсов Windows, таких как Direct2D и DirectWrite.

Windows 10 поставляется с новейшей версией DirectX 12. В моей любимой игре SWTOR и во многих других старых играх используется DirectX 9. Чтобы показать всю красоту, система должна эмулировать все эффекты DirectX 9, которые может замедлить его работу и привести к снижению производительности.

Установив пакет DirectX 9 вручную, мы остановим этот процесс моделирования и позволим нашему ПК использовать исходные файлы, для которых предназначена игра, таким образом, по крайней мере теоретически, ускоряя процесс. Эта установка не сделает игру гладкой и безупречной, но, вероятно, повысит ее хотя бы немного. Я делал это с момента запуска игры в 2011 году на нескольких версиях Windows — Windows 7, Windows 8 + 8.1, а теперь и Windows 10.

DirectX 9 не заменяет DirectX 11 или DirectX 12, а добавляет дополнительные библиотеки для использования играми и программным обеспечением, разработанным для наилучшей работы с ними.

Установка проста. Загрузите файл по ссылке, которую я предоставил ниже (ведущей на официальный сайт Microsoft), и установите без каких-либо ручных изменений в процессе. Делая это, вы НЕ удаляете DirectX 12, нет, он просто устанавливает дополнительные библиотеки и дает игре возможность выбирать, какие из них использовать. Если игра может извлечь выгоду из DirectX 11 или 12, она БУДЕТ их использовать. Нет переопределения или замены, установка просто добавляет еще один слой.

Вы можете получить Windows 10 Pro за 28 долларов в Kinguin (используйте код «vulkk», чтобы получить дополнительную 3% СКИДКУ) — я сам купил у них копию :)

Последнее замечание. Установка DirectX 9 не повредит вашей системе, ничего не сломает. Приведенная ниже ссылка взята с официального сайта Microsoft.

Если у вас возникли проблемы, оставьте комментарий и сообщите мне о ВАШЕМ опыте. Улучшил ли DirectX 9 производительность игры для вас, или она ощущается и действует точно так же, как и раньше.

Я не очень хорошо разбираюсь в компьютерах, и мне было интересно, что на самом деле делает Direct X на моем ПК.

Почему разные игры запрашивают разные версии? Должна ли последняя версия охватывать их все или некоторые игры поддерживают только определенные версии?

Допустим, я решил не устанавливать версию Direct X, включенную в установщик, так как у меня есть последняя версия, могу ли я сказать, что она, по крайней мере, не столкнется с какими-либо проблемами?

Краткий технический ответ: если в играх Dx9 возникают проблемы, попробуйте использовать веб-установщик Dx или установите Dx9 June 2010. Если игра предлагает установить DirectX, нажмите «Да», просто на всякий случай (не должно быть никаких плохих последствий).

4 ответа 4

TL;DR: DirectX — это распространяемая библиотека, которая помогает игре взаимодействовать с вашим оборудованием. DirectX должен поддерживать более ранние версии и, как предполагает PTwr, часто является виновником сообщений «отсутствует DLL d3dx9_[somenumber].dll». Требуемая версия всегда должна быть включена в процесс установки игры, поэтому часто у вас будет несколько версий.

DirectX — это просто программное обеспечение посередине, которое действует как переводчик между вашей графической картой и игрой, в которую вы играете, среди прочего 1 . Важно, чтобы у вас была версия, необходимая для видеоигры, или выше. Насколько я видел, наличие более новой версии не должно быть проблемой; тем не менее, я никогда не видел игры, в программе установки которой отсутствовала необходимая версия DirectX, так что в любом случае проблем быть не должно.

Новые версии DirectX работают с новыми функциями видеокарты; например, игра, использующая DirectX 9, теоретически требует меньше графической обработки, чем игра, использующая DirectX 10. Разумеется, это не учитывает способности разработчика.

Чтобы уточнить, зачем нам это нужно, скажем, что каждая компьютерная графическая карта говорит на своем языке. Набор карт от одного производителя может говорить почти на одном языке, но это не будет точно, как два человека, говорящие по-китайски, только на разных диалектах. На заре компьютерных игр вам нужно было убедиться, что ваша графическая карта действительно указана в списке поддерживаемых карт. Вам придется просмотреть небольшой список карт и попытаться найти точный номер модели. И если разработчики решили, что не хотят намеренно добавлять поддержку, очень жаль. С компьютерами может быть невероятно сложно работать, даже при малейшем несоответствии. Точка в неправильном месте может привести к сбою всей системы.

DirectX был создан как средство борьбы с этой очевидной проблемой. Разработчики игр писали бы об использовании библиотек DirectX, как и производители видеокарт. В наши дни вместо того, чтобы искать модель вашей видеокарты в списке потенциально сотен перечисленных моделей, вам нужно только убедиться, что ваша видеокарта совместима с этой версией DirectX.

Кстати, DirectX был создан Microsoft. В результате любая игра с явными требованиями DirectX, скорее всего, будет корректно работать только в Windows. Вот почему довольно сложно играть в большинство игр на системе *nix или Mac.

1 DirectX расширился, чтобы облегчить другие мультимедийные функции в Windows, но в первую очередь он связан с графическими возможностями. Технически, графический компонент DirectX известен как Direct3D, в то время как другие части включают DirectShow для мультимедиа, DirectWrite для шрифтов и т. д.


Я считаю, что упоминание о библиотеках повторного распространения DX может быть полезным, так как их отсутствие является довольно распространенной проблемой ("отсутствует d3dx9_[somenumber].dll" ). И TLDR может быть «у dx10+ обратная совместимость с dx9, но вам нужны повторные списки» (штучка на уровне функций)

@CarstenS с Directx9 (выпущенным в 2002 г.) и выше — все в порядке, однако с более старыми версиями поддержки давно нет, поэтому виртуальная машина с Win98/XP — ваш лучший/самый простой выбор. Даже эмуляция будет иметь более чем достаточную мощность для этих старичков, и в любом случае следует ожидать проблем с совместимостью. Короче говоря, для игр, выпущенных в последнее десятилетие, вам не о чем беспокоиться.

@CarstenS На самом деле, проблема, с которой вы столкнулись, как раз и предназначена для DirectX: чтобы производители игр не беспокоились об оборудовании, которое будет использоваться для запуска их игр. Пока производители оборудования делают свое оборудование совместимым с DirectX, любая игра, использующая его, должна просто работать. В наши дни сделать ваше оборудование несовместимым с DirectX означает, что, по всей вероятности, вы не сможете много продавать.

@JoeWallis, это просто означает, что игры DirectX изначально работают только в Windows. В данном случае спрашивающий не спрашивает об альтернативах, поэтому уточнение не добавляет к вопросу сути.

@JoeWallis Версия этих игр, которая работает на системах *nix, не является DirectX. В противном случае он не будет работать на системах * nix без чего-то вроде вина. Просто в их движке есть серверные части DirectX и OpenGL.

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

Во времена, когда еще не было DirectX, у программ для Windows был один из двух вариантов взаимодействия с видеокартой:

  • Первый вариант заключался в том, что они могли писать на карту через Windows API. Они передают свои запросы Windows, а Windows делает кучу вещей в фоновом режиме и в конечном итоге записывает эти данные на видеокарту. Большинство старых 2D-игр могли бы обойтись с этим (например, Minesweeper и Solitare), поскольку задержка не была для них проблемой.
  • Вариант второй: они могли писать против самих драйверов видеокарты. Это означало, что вам нужно было поддерживать разные версии механизма рендеринга вашей программы в зависимости от того, какое оборудование было установлено на ПК. Не совсем оптимальное решение, но сработало намного быстрее.

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

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

Теперь мы подошли к установке DirectX. Компоненты DirectX в Windows поставляются с последними версиями ОС, но DirectX — это стандарт, который имеет тенденцию развиваться по мере роста и изменения видеокарт и программ, которые их используют. Таким образом, Microsoft предоставляет установщики, которые могут быть связаны с играми, чтобы довести версию DirectX на вашем компьютере до версии, требуемой игрой.

Абсолютно безопасно устанавливать более раннюю версию распространяемого пакета DirectX, так как если установщик DirectX понимает, что он устарел по сравнению с тем, что установлено на вашем компьютере, он просто завершает работу, ничего не делая.Существуют также различные основные версии DirectX, с помощью которых можно создать игру (например, DirectX 9 или DirectX 11), но эти версии мирно сосуществуют, и их собственные версии устанавливаются одновременно.

OpenGL не имеет открытого исходного кода. OpenGL — это спецификация, и существуют его реализации с открытым исходным кодом (например, Mesa 3D) и реализации без такового (например, в Windows).

(Причина, по которой это не относится к DirectX, заключается в том, что для DirectX реализация Microsoft является спецификацией, то есть ваша реализация должна делать именно то, что делает Microsoft, а исходный код Microsoft не является открытым)< /p>

DirectX — это три разных вещи в зависимости от того, являетесь ли вы геймером или разработчиком и какой версией Windows вы пользуетесь. Раньше DirectX был надстройкой, которую можно было обновить в более старых версиях Windows, но в текущих версиях Windows DirectX является компонентом ОС, который нельзя обновить. Это также SDK, который разработчики используют для создания игр, использующих DirectX. В наши дни, когда игра устанавливает DirectX, она фактически устанавливает часть DirectX SDK, а не сам DirectX, который предназначен для распространения среди пользователей. Это всегда безопасно. Он может ничего не делать, потому что то, что он устанавливает, уже существует, но он никогда не понизит версию DirectX. Поскольку все версии DirectX обратно совместимы с более ранними версиями, нет необходимости переходить на более раннюю версию.

DirectX как надстройка

DirectX, по сути, был надстройкой для Windows до Windows XP SP2. Он не считался частью самой операционной системы Windows, и в Microsoft над продуктом работала другая команда разработчиков «DirectX» отдельно от разработчиков «Windows». Хотя он поставлялся с Windows, начиная с Windows 95 OSR2 и Windows NT 4.0, его можно было обновить отдельно от операционной системы, и поэтому он не считался ее частью.

Именно из этой эпохи мы получили представление об играх, устанавливающих DirectX. В наши дни это не совсем то, что происходит, но раньше игры действительно устанавливали или обновляли DirectX. Если в игре используются интерфейсы DirectX 7, она обычно включает установщик среды выполнения DirectX 7 и предлагает установить его как часть установки игры. Если DirectX 7 или новее уже установлен, то программа установки ничего не сделает. В противном случае он установит или обновит DirectX.

DirectX как компонент ОС

В настоящее время DirectX считается частью Windows, которую нельзя обновить отдельно. Если вы используете Windows XP SP2 или SP3, Windows Vista, Windows 7, Windows 8 или Windows 10, то игры не могут обновить используемую вами версию DirectX. Хотя они могут поставляться с установщиком среды выполнения DirectX 9.0c, последней версией DirectX, для которой Microsoft предоставила ее, она не обновит установленную вами версию DirectX, поскольку DirectX 9.0c или более поздняя версия уже установлена.

DirectX как SDK

DirectX также имел отдельный компонент SDK (Software Development Kit). SDK предоставил файлы и документацию, необходимые разработчикам для создания игр и приложений, использующих DirectX. Он также содержал код поддержки, написанный Microsoft и предназначенный для упрощения создания игр, использующих DirectX.

В частности, она предоставила библиотеку D3DX, содержащую код, предназначенный для использования в играх, использующих Direct3D. В то время как Direct3D позволял программистам делать то, что они не могли сделать без него, то есть получать доступ к аппаратному обеспечению ускоренного рендеринга видеокарты, библиотека D3DX представляла собой весь код, который программисты могли написать сами. Это просто избавило их от необходимости делать это. Поскольку это не было необходимо и не делало ничего особенного, оно не предоставлялось как часть среды выполнения DirectX. Разработчики могли просто включать в свои игры любые его части, которые они хотели использовать, если таковые имеются. Код D3DX становился неотъемлемой частью игры, обычно как часть исполняемого файла игры (.EXE), как если бы они написали его сами.

Однако однажды Microsoft решила изменить порядок использования разработчиками библиотеки D3DX. Они превратили его в DLL, которую игра установила бы, если бы захотела ее использовать, подобно тому, как игры использовали для установки среды выполнения DirectX. На самом деле они использовали один и тот же установщик для обоих. Установщик, предоставленный Microsoft, устанавливает среду выполнения DirectX 9.0c и/или D3DX DLL в зависимости от того, какие файлы были упакованы вместе с ним.

Поэтому, несмотря на то, что современные игры содержат установщик DirectX, который на самом деле не устанавливает DirectX, он часто устанавливает DLL D3DX (и/или одну из нескольких других DLL, поставляемых с DirectX SDK). Каждая версия DirectX SDK, которая поставлялась с D3DX DLL, имела собственную отдельно пронумерованную DLL (от d3dx9_24.dll до d3d9_43.dll .Каждая игра устанавливает только ту версию библиотеки DLL, которую они используют, поэтому возможно, что даже если многие другие игры «установили DirectX», они не установили версию D3DX, необходимую для игры, которую вы устанавливаете сейчас.

В настоящее время Microsoft больше не предоставляет отдельный DirectX SDK. Подобно тому, как среда выполнения DirectX стала частью операционной системы Windows, Direct SDK теперь является частью Windows SDK. Они также перестали обновлять библиотеку D3DX. Вместо этого Microsoft рекомендует разработчикам использовать сторонние библиотеки, которые они могут включать в свои игры и которые не нужно устанавливать отдельно.

Игры, которые устанавливают DirectX сегодня

Когда игра устанавливает DirectX, не беспокойтесь об этом. Если он спросит, хотите ли вы установить DirectX, то самым безопасным вариантом будет сказать «да». Установщики среды выполнения DirectX не понизят установленную версию DirectX. Мало того, что они не будут, Windows предотвратит их, если они попытаются, так как DirectX теперь является защищенной частью операционной системы. Хотя в современной версии Windows это фактически не изменит установленную версию DirectX, установщик может по-прежнему устанавливать библиотеки DLL, которые нужны игре.

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

DirectX также полностью обратно совместим. Если вы используете Windows 10, то у вас есть не только новейшие интерфейсы DirectX 12, но и Windows также предоставляет все предыдущие интерфейсы. За исключением некоторых других несовместимостей, вы можете играть в игры, разработанные для Windows 95 и оригинальной версии DirectX.

С другой стороны, если вы используете Windows Vista, вам доступны только интерфейсы DirectX 10. Вы не можете играть в игры, для которых требуется DirectX 11 или 12. Вы также не можете выполнить обновление до DirectX 11 или 12. Чтобы играть в игры, для которых требуется DirectX 11, вам необходимо выполнить обновление как минимум до Windows 7. Если вы хотите воспользоваться преимуществами функций в игре, для которой требуется DirectX 12, вам потребуется выполнить обновление до Windows 10.

Читайте также: