Чем отличается directx 9 от directx 11?
Чем отличается DirectX 9 от DirectX 11?
О DirectX наверняка слышали почти все любители компьютерных игр, однако, что это такое, как работает, для чего нужно и в чем заключается разница версий, знают единица, а иногда эти знания не совсем верные. Именно поэтому в данной статье будет проведено сравнение версий DirectX 9 и 11, а также сделан вывод о том стоит ли покупать новую дорогую видеокарту с поддержкой последней версии.
Что такое DirectX?
DirectX – это набор команд для Windows, которые позволяют решать две задачи. Пользователи за счет работы этих библиотек получают возможность насладиться всей вычислительной способностью своего ПК, а именно великолепными спецэффектами, для разработчиков – это возможность получить все привилегии работы с видеокартой на аппаратном уровне. Иными словами DirectX необходим для создания реалистичной и эффективной картинки в играх.
Данный пакет команд появился в 1994 году, когда компания Microsoft готовилась выпустить на рынок новую версию ОС – Windows 95, однако, ее коммерческий потенциал был весьма сомнителен, так как из-за защиты и оптимизации работы многие разработчики не могли получить полноценный доступ к видеокарте, а значит использовать все ее ресурсы. Именно тогда родилась идеи написать пакет приложений способных дать такую возможность программистам. Это вывело удобство работы с данной ОС на принципиальной новый уровень, который стал конкурентоспособным с написанием игр под DOS.
В настоящее время существует несколько версий DirectX, все они работоспособные и по большому счету игроки могут пользоваться той, которая поддерживается их видеокартой. Как правило, новая версия DirectX выпускается совместно с новыми играми и влечет за собой замену видеокарты на более мощную и современную. Однако, стоит ли новая версия таких затрат или можно обойтись старым железом. Если говорить коротко, то новая версия пакета всегда дает программистам новые возможности, что для пользователя выливается в более красивые спецэффекты. Стоит сразу отметить, что отсутствие DirectX может иметь два последствия:
- Игра будет без каких-либо спецэффектов.
- Игра не запустится, а пользователь будет видеть на экране ошибку.
DirectX 9
DirectX 9 появился в 2002 году и стал по-своему революционным, разработчики вложили в него поддержку шейдеров, что в итоге дало великолепную графику для своего времени. Ярким прим DirectX ером тому может служить игра Need For Speed, выпущенная в 2003 году, где пользователь могли видеть мельчайшие блики на стекле автомобиля, наслаждаться вылетающими из-под колес кусками грязи и снега, а также удивлялись детализации окружающего мира. Все разработчики делали свои игры с учетом этой версии DirectX и так продолжалось до 2006 года, пока вместе с Windows Vista не появился DirectX версии 10.
Интересным фактом стало то, что данная версия не получила широкого распространения, так как сама операционка для которой она было создана не пошла в массы. Многие геймеры и просто пользователи предпочли остаться на более старой ОС и, соответственно, необходимости в обновлении пакета DirectX до 10 версии не было.
DirectX 11
В 2009 году на рынок выходит новая версия Windows под номером 7, а с ней и DirectX 11. Принципиальным отличием данной версии от более старых стало:
- Поток видеоданных стал лучше обрабатываться за счет увеличения их числа.
- Взаимодействие с многоядерными видеокартами стал на порядок лучше.
- Увеличился КПД в целом средних и слабых видеокарт, на одних и тех же настройках видеокарта стала с одной и той же задачей справляться лучше, без лишнего нагрева и усиления работы кулера.
Вышеописанные процессы стали важны для разработчиков, а для игроков это вылилось в улучшение картинки и детализации.
Необходимость перехода
Выше было описано, что улучшилось при появлении DirectX версии 11, однако, многие игроки не смогли это заметить в старых играх. Этому есть вполне логичное обоснование. Разработчики создают свои продукты под ту версию, которая существует в данный момент, поэтому более старые игры просто не несут в себе данных, которые могли бы быть использованы DirectX 11. Чтобы ощутить все возможности этого пакета необходимо скачать новые игры или игры, которые были выпущены с учетом нового DirectX.
Почему многие игры кажутся недостаточно проработанными даже на новых видеокартах с новой версией DirectX. Все дело в том, что большинство производителей в целях экономии ресурсов предпочитают выпускать игры сразу на несколько разных платформ, например, ПК, PlayStation и Xbox. Консоли даже последних поколений не могут сравниться производительностью с мощными игровыми ПК, поэтому производители закладывают в свои игры максимум для консолей, что для персонального компьютера может быть лишь на уровне среднего использования. Только игры, выпущенные эксклюзивно под ПК или специально адаптированные под него, как это было с GTA 5, могут похвастаться отличным изображением и использование всей мощи видеокарты.
Важные изменения в Direct3D 11 по сравнению с Direct3D 9
Сводка
- Планирование переноса приложений на DirectX
- Важные изменения в Direct3D 11 по сравнению с Direct3D 9
- Сопоставление компонентов
В этом разделе представлены общие отличия между DirectX 9 и DirectX 11.
Direct3D 11 — это по сути тот же тип API, что и Direct3D 9, а именно виртуализованный интерфейс нижнего уровня для взаимодействия с графическим оборудованием. Он также по-прежнему позволяет выполнять графические операции в разнообразных аппаратных реализациях. Структура графического API изменилась по сравнению с Direct3D 9; идея контекста устройства была расширена. Также был добавлен специальный API для графической инфраструктуры. Ресурсы, хранящиеся на устройстве Direct3D, получили принципиально новый механизм для полиморфизма данных — представление ресурсов.
Базовые функции API
В Direct3D 9, прежде чем использовать интерфейс для взаимодействия с API Direct3D, его приходилось создавать. В играх UWP с использованием Direct3D 11 вы вызываете статическую функцию D3D11CreateDevice для создания устройства и контекста устройства.
Устройства и контекст устройства
Устройство Direct3D 11 представляет собой виртуализованный графический адаптер. Оно используется для создания ресурсов в видеопамяти, например для отправки текстур графическому процессору (GPU), создания представлений на основе ресурсов текстуры и цепочек буферов и для создания дискретизаторов текстур. Полный перечень способов использования интерфейса устройства Direct3D 11 приведен в разделах ID3D11Device и ID3D11Device1.
Контекст устройства Direct3D 11 используется для настройки состояния конвейера и создания команд отрисовки. Например, цепочка отрисовки Direct3D 11 использует контекст устройства для настройки цепочки отрисовки и рисования сцены (см. ниже). Контекст устройства применяется для доступа к видеопамяти (сопоставления), которую используют ресурсы устройства Direct3D, а также для обновления данных подресурсов, например данных буфера констант. Полный перечень способов использования контекста устройства Direct3D 11 приведен в разделах ID3D11DeviceContext и ID3D11DeviceContext1. Обратите внимание, что большинство наших образцов используют мгновенный контекст для обработки напрямую на устройстве, но Direct3D 11 также поддерживает и отложенные контексты устройств, которые применяются преимущественно для многопоточности.
Чтобы получить маркер устройства и маркер контекста устройства, в Direct3D 11 вызывается D3D11CreateDevice. В этом методе также запрашивается определенный набор аппаратных функций и извлекаются сведения об уровнях компонентов Direct3D, которые поддерживает графический адаптер. Дополнительные сведения об устройствах, контекстах устройств и потоковой модели см. в разделе Вводные сведения об устройстве в Direct3D 11.
Инфраструктура устройства, буферы кадров и представления однобуферной прорисовки
В Direct3D 11 для настройки адаптера устройств и конфигурации оборудования применяется API DirectX Graphics Infrastructure (DXGI) с использованием COM-интерфейсов IDXGIAdapter и IDXGIDevice1. Буферы и другие ресурсы окон (видимые и закадровые) создаются и настраиваются при помощи определенных интерфейсов DXGI. Реализация шаблона фабрики IDXGIFactory2 получает ресурсы DXGI, такие как буфер кадров. Поскольку DXGI принадлежит цепочка буферов, интерфейс DXGI используется для представления кадров на экране. Дополнительные сведения об этом см. в IDXGISwapChain1.
Используйте IDXGIFactory2 для создания цепочки буферов, совместимой с вашей игрой. Необходимо создать цепочку буферов не для HWND, а для основного окна или для композиции (взаимодействие с XAML).
Ресурсы устройств и представления ресурсов
Direct3D 11 поддерживает дополнительный уровень полиморфизма для ресурсов видеопамяти — для представлений. По сути там, где раньше был один объект Direct3D 9 для текстуры, теперь есть два объекта: ресурс текстуры, где хранятся данные, и представление ресурсов, которое определяет способ использования представления для отрисовки. Представление на основе ресурса позволяет использовать ресурс для определенной цели. Например, ресурс двухмерной текстуры создается в форме ID3D11Texture2D, затем на его основе создается представление ресурсов шейдера (ID3D11ShaderResourceView), и его можно использовать как текстуру в шейдере. Представление однобуферной прорисовки (ID3D11RenderTargetView) можно также создать на основе того же ресурса двухмерной текстуры и использовать его как поверхность рисования. В другом примере те же пиксельные данные представлены в двух разных форматах пикселей с использованием двух отдельных представлений на основе одного ресурса текстуры.
Основной ресурс необходимо создать со свойствами, совместимыми с типом представлений, которые будут созданы из него. Например, если к поверхности применяется ID3D11RenderTargetView , эта поверхность создается с флагом _ _ _ целевого объекта прорисовки D3D11 BIND . Поверхность также должна иметь формат поверхности DXGI, совместимый с отрисовкой (см. раздел _ Формат DXGI).
Большинство ресурсов, которые вы используете для отрисовки, унаследованы от интерфейса ID3D11Resource, в свою очередь унаследованного от ID3D11DeviceChild. Буферы вершин, буферы индексов, буферы констант и шейдеры — все это ресурсы Direct3D 11. Входные макеты и состояния дискретизатора унаследованы напрямую от ID3D11DeviceChild.
В представлениях ресурсов _ для обозначения формата пикселей используется значение перечисления в формате DXGI. Не все D3DFMT поддерживаются в виде _ формата DXGI. Например, в DXGI отсутствует формат 24 RGB, эквивалентный D3DFMT _ R8G8B8. Также не BGR эквиваленты для каждого формата RGB ( _ Формат DXGI _ R10G10B10A2 _ UNORM эквивалентен D3DFMT _ A2B10G10R10, но нет прямого эквивалента D3DFMT _ A2R10G10B10). Во время сборки следует преобразовать содержимое в этих устаревших форматах в поддерживаемые форматы. Полный список форматов DXGI см. в разделе перечисление форматов DXGI _ .
Ресурсы устройств Direct3D (и представления ресурсов) создаются до обработки сцены. Контексты устройств используются для настройки цепочки отрисовки, как описано ниже.
Контекст устройства и цепочка отрисовки
В Direct3D 9 и Direct3D 10.x был единственный объект устройства Direct3D, который управлял созданием ресурсов, состоянием и рисованием. В Direct3D 11 интерфейс устройства Direct3D также управляет созданием ресурсов, но для управления состоянием и операциями рисования используется контекст устройства Direct3D. Вот пример использования контекста устройства (интерфейса ID3D11DeviceContext1) для настройки цепочки отрисовки:
- Настройка и очистка представлений однобуферной прорисовки (и представления трафарета глубины)
- Настройка буфера вершин, буфера индексов и входного макета для этапа сборщика входных данных (этапа IA)
- Привязка вершинного и обычного построителей текстуры к конвейеру
- Привязка буферов констант к шейдерам
- Привязка представлений текстуры и дискретизаторов к построителю текстуры
- Рисование сцены
Когда вызван один из методов ID3D11DeviceContext::Draw, рисуется сцена в представлении однобуферной прорисовки. По завершении рисования адаптер DXGI используется для представления законченного кадра вызовом IDXGISwapChain1::Present1.
Управление состоянием
В Direct3D 9 для управления параметрами состояния использовался большой набор отдельных переключателей, которые настраивались с помощью методов SetRenderState, SetSamplerState и SetTextureStageState. Поскольку Direct3D 11 не поддерживает устаревший конвейер с фиксированной функцией, метод SetTextureStageState заменен написанием построителей текстуры (PS). Не существует эквивалента блоку состояний Direct3D 9. В Direct3D 11 для управления состоянием используются 4 вида объектов состояния, что упрощает группировку состояний отрисовки.
Например, вместо использования Сетрендерстате с D3DRS _ зенабле вы создаете объект депсстенЦилстате с этим и другими связанными параметрами состояния и используете его для изменения состояния во время подготовки к просмотру.
При переносе приложений Direct3D 9 в объекты состояния учитывайте, что различные комбинации состояний представлены в виде неизменяемых объектов состояния. Их следует создать один раз и многократно использовать, пока они остаются действительными.
Уровни функций Direct3D
В Direct3D появился новый механизм определения аппаратной поддержки — уровни функций. Благодаря уровням функций становится проще узнать о возможностях графического адаптера, поскольку можно запросить четко определенный набор функций GPU. Например, уровень «9 _ 1» применяет функциональные возможности графических адаптеров Direct3D 9, включая Shader Model 2. x. Поскольку 9 _ 1 является самым низким уровнем функций, можно рассчитывать, что все устройства поддерживают шейдер вершин и шейдер пикселей, которые были теми же этапами, что и программируемая модель шейдера Direct3D 9.
Ваша игра будет использовать D3D11CreateDevice для создания устройства и контекста устройства Direct3D. Вызывая эту функцию, вы предоставляете список уровней функций, которые поддерживает ваша игра. На основе этого списка функция вернет самый высокий поддерживаемый уровень функций. Например, если в игре можно использовать текстуры BC4/BC5 (компонент оборудования DirectX 10), в список поддерживаемых функций необходимо включить по меньшей мере 9 _ 1 и 10 _ 0. Если игра выполняется на устройствах с DirectX 9 и BC4/BC5, то D3D11CreateDevice вернет 9 _ 1. Затем ваша игра может переключиться на другой формат текстур (и более мелкие текстуры).
Если вы решили расширить игру Direct3D 9, добавив поддержку более высоких уровней функций Direct3D, лучше сначала закончить перенос существующего графического кода Direct3D 9. После переноса игры в Direct3D 11 будет проще добавить дополнительные пути отрисовки с более сложной графикой.
Подробное объяснение поддержки уровней функций см. в разделе Уровни функций Direct3D. Полный перечень функций Direct3D 11 см. в разделах Функции Direct3D 11 и Функции Direct3D 11.1.
Уровни функций и программируемый конвейер
С момента появления Direct3D 9 оборудование непрерывно совершенствовалось, и в программируемый графический конвейер было добавлено несколько новых дополнительных этапов. Набор параметров для графического конвейера зависит от уровня функций Direct3D. Уровень функций 10.0 включает этап геометрического построителя текстуры с дополнительным потоковым выводом для многопроходной отрисовки на GPU. Уровень компонентов 11 _ 0 включает шейдер поверхности и шейдер домена для использования с тесселяцией оборудования. Уровень компонентов 11 _ 0 также включает полную поддержку шейдеров DirectCompute, а уровни функций 10. x включают поддержку ограниченного вида DirectCompute.
Все шейдеры написаны на языке HLSL с использованием профиля шейдеров, соответствующего уровню функций Direct3D. Профили шейдеров обладают обратной совместимостью, поэтому Шейдер HLSL, компилируемый с использованием VS _ 4 _ 0 _ уровня _ 9 _ 1 или PS 4 0 _ _ _ уровня _ 9 _ 1, будет работать на всех устройствах. Профили шейдеров не совместимы с предыдущими версиями, поэтому шейдер, скомпилированный с помощью VS _ 4 _ 1, будет работать только на устройствах уровня 10 _ 1, 11 _ 0 или 11 _ 1.
В Direct3D 9 для управления константами шейдеров использовался общий массив с методами SetVertexShaderConstant и SetPixelShaderConstant. Direct3D 11 использует буферы констант, которые представляют собой ресурсы, аналогичные буферу вершин или буферу индексов. Буферы констант эффективно обновляются благодаря своей структуре. Вам не нужно размещать все константы шейдера в одном глобальном массиве. Вместо этого вы объединяете константы в логические группы и управляете ими при помощи одного или нескольких буферов констант. При переносе игры Direct3D 9 в Direct3D 11 запланируйте такую организацию буферов констант, чтобы можно было обновлять их соответствующим образом. Например, сгруппируйте константы шейдера, которые не обновляются с каждым кадром, в отдельный буфер констант. Тогда вам не придется постоянно отправлять эти данные графическому адаптеру вместе с более динамическими константами шейдера.
Примечание. Большинство приложений Direct3D 9 широко использовали шейдеры, но иногда в комбинации с традиционной моделью на основе фиксированной функции. Обратите внимание, что Direct3D 11 использует только программируемую модель шейдеров. Устаревшие компоненты Direct3D 9 с фиксированными функциями использовать не рекомендуется.
DX9 vs DX11
12 Jul 2018 в 02:03
12 Jul 2018 в 02:03 #1
Что ставить в настройках лучше, когда ПК довольно слабый ? ФПС на минимальных настройках в пределах 50-60, однако ближе к середине игры и особенно в файтах, ФПС падает до 35-40.
Влияет ли вообще на ФПС dx9 и dx11 ? Если да, то насколько сильно ?
AMD Athlon x4 635
Radeon 5750 1gb
12 Jul 2018 в 02:04 #2
Radeon 5750 1gb
Ещё попробуй через OpenGL, но не факт что будет лучше.
12 Jul 2018 в 02:08 #3
Ещё попробуй через OpenGL, но не факт что будет лучше.
Заметил еще такой момент, что если отключить лок в 60фпс, то в игре фпс просто может скакать от 40 до 100 в спокойный момент на линии в начале игры. При чем фпс за секунду может как упасть до 40, так и подняться до 100.
Не знаешь с чем это может быть связано ?
12 Jul 2018 в 02:12 #4
как же я скучаю по старой доте(мой комп) а то щас фпс 50- в замесе 35-40, а при жестком замесе ваще до 10 проседает( ни типа инвокер касты там раваги бх, и т.д)
12 Jul 2018 в 02:16 #5
Я бы рекомендовал тестить dx9 и d11 (а лучше и opengl с vulkan) лично,ТС.
Очевидно, что без ограничений кадров ты просто прогоняешь впустую мощности компа, а также пропускаются кадры (если у тебя монитор с 60гц). Это по сути что-то вроде вертикальной синхронизации, если совсем грубо. При этом «прироста» при нагрузке тебе это не даст, так как 40 это жестокая реальность в замесе, что с ограничением, что без.
В тех разделе закреплен гайд по поднятию фпс на слабых машинах, действуй по нему.
Доту рекомендую запускать через 32 бита. Dx11 с определенного времени показывает лучшие результаты по производительности у меня (и в гайде), хотя раньше именно 9й тащил хорошо.
12 Jul 2018 в 02:32 #6
Я бы рекомендовал тестить dx9 и d11 (а лучше и opengl с vulkan) лично,ТС.
Очевидно, что без ограничений кадров ты просто прогоняешь впустую мощности компа, а также пропускаются кадры (если у тебя монитор с 60гц). Это по сути что-то вроде вертикальной синхронизации, если совсем грубо. При этом «прироста» при нагрузке тебе это не даст, так как 40 это жестокая реальность в замесе, что с ограничением, что без.
В тех разделе закреплен гайд по поднятию фпс на слабых машинах, действуй по нему.
Доту рекомендую запускать через 32 бита. Dx11 с определенного времени показывает лучшие результаты по производительности у меня (и в гайде), хотя раньше именно 9й тащил хорошо.
Я много всего пробовал уже : и с autoexec, и разные команды запуска перепробовал, и менять разрешение, различные настройки и т.д.. И всё равно ФПС проседает порой, даже когда ничего на карте особо не происходит.
Я вот уже думаю может блок питания не совсем выдерживает или перегрев небольшой у процессоравидеокарты. Хотя температуры их не превышают 70.
12 Jul 2018 в 02:35 #7
Msi afterburner . Попробуй разогнать . (По чуть-чуть ). Мб поможет
12 Jul 2018 в 02:39 #8
Msi afterburner . Попробуй разогнать . (По чуть-чуть ). Мб поможет
Думал об этом, но всё время останавливает тот момент, что комп довольно таки долго служит ( с года 2011) и конечно же не хочется что бы что-то вышло из строя. А возможности обновить ПК, даже по-этапно, сейчас нет. Новое железо смогу купить в лучшем случае через пол года-год.
12 Jul 2018 в 02:48 #9
Я тебя прекрасно понимаю (Сам сидел до 2017(июль) на ноуте 2009года (dell inspiron 1545 вроде) До реборна было нормальные 60 фпс . После 30 . в замесах же все еще хуже . Когда анонсировали вулкан . Мне дало +10 фпс . Приятно . Но шли патчи и мой ноут медленно но верно шел ко дну. Еще на ти6 ноут реально не вытягивал дитку . 20 фпс в ласхите крипов. Когда разогнал стало более менее нормально 40фпс и 20 в замесах . Ух . Вспоминаю когда реально плакал от такого фпса ведь из за этого у меня малый птс и 256 места на всех квалах (ти6 , киев ,(ти8 топ 129 )) . Вот что я тебе скажу . Разгоняй . Выжимай все соки из своей пекарне.(Разгоняй умеренно ) . (Шо стало с ноутом ? Да так , ВК кремень отошел от подложки )
12 Jul 2018 в 02:54 #10
Что ставить в настройках лучше, когда ПК довольно слабый ? ФПС на минимальных настройках в пределах 50-60, однако ближе к середине игры и особенно в файтах, ФПС падает до 35-40.
Влияет ли вообще на ФПС dx9 и dx11 ? Если да, то насколько сильно ?
AMD Athlon x4 635
Radeon 5750 1gb
как можно играть на низких настройках в 40 фпс с просадками?неужеле всё так плохо с деньгами и не можешь выделить 20-25к на «новый» компуктер?
а по теме поройся в гугле, есть куча гайдов как через консольные команды запускать помойку 2 даже на микроволновке
Все о Directx. [Версии, установка, устранение ошибок directx ]
Приветствую Вас многоуважаемые посетители. Пользователи новички, которые не давно стали обладателями компьютера с операционной системой windows, возможно пожимают плечами услышав термин directx. И, уж тем более, понятия не имеют как узнать версию directx или как установить его последнюю версию.
Прочитав до конца данную статью они смогут устранить данный пробел в своих компьютерных знаниях. А я постараюсь все объяснить простым доступным языком, используя при этом иллюстрации (скриншоты) для более легкого запоминания.
Directx. [Общая информация]
Для начала узнаем определение данного термина. Прибегнем к помощи википедии.
Directx (в переводе с англ. direct — прямой, непосредственный; произносится как «ДайректИкс» или «ДиректИкс») — это набор API (интерфейс программирования приложений, интерфейс прикладного программирования; с англ. application programming interface, API [эй-пи-ай]) — набор готовых классов, процедур, функций, структур и констант, предоставляемых приложением (библиотекой, сервисом) или операционной системой для использования во внешних) разработанных для решения задач, связанных с программированием под Microsoft Windows. Наиболее широко используется при написании компьютерных игр.
Если говорить простым языком, то это посредник между видеокартой и приложением (в основном играми), который позволяет использовать всю вычислительную мощность компьютера для отрисовки тяжелой, детализированной графики.
Версии Directx.
Первая версия directx 1.0 впервые появилась в 1995 году. Дата релиза 30 сентября. С тех пор версии обновлялись почти ежегодно, иногда даже по нескольку раз за год. Самая последняя версия на момент написания данного поста это directx 12, которая включена в состав Windows 10. Дата релиза крайней версии 29 июля 2015 года.
Чем отличаются версии Directx?
Чем выше версия directx, тем четче картинка в видеоиграх и тем лучше оптимизированы процессы связанные с обработкой этой картинки. С выходом каждой новой версии в него добавляются новые возможности, а старые оптимизируются. Но здесь следует отметить, что сама библиотека directx ни как не улучшает графику в играх. Она просто позволяет более эффективно воспользоваться мощностью (всеми возможностями) графического адаптера (видеокарты).
Как узнать версию directx установленную в системе?
Узнать версию directx на windows легко. Для этого комбинацией клавиш WIN+R запускаем командную строку «Пуск-Выполнить» и в поле ввода набираем команду dxdiag . Далее жмем Enter . Откроется вот такое окно.
Как вы видите в строке «Версия directx» указано 12. Значит в системе установлена 12 версия directx (входит в состав windows 10).
Совместимость
Многие современные видеокарты имеют специальные directx-совместимые драйвера. Пользователь, который хочет выжать все из своей видеокарты, должен установить именно ту версию directx, которую поддерживает видеокарта. Информацию о том, какую версию поддерживает видеокарта, можно узнать на официальном сайте производителя. Чтобы все работало как надо, нужно чтобы directx определенной версии поддерживали все стороны: операционная система, видеокарта и приложение (игра).
Если в системе установлена более новая версия, а старые версии отсутствуют, то старая игра, при запуске может выдать примерно такую ошибку «Запуск программы невозможен, так как на компьютере отсутствует d3dx9_35.dll. Попробуйте переустановить программу, чтобы исправить эту проблему«. Устранить данную ошибку directx можно просто скачав и установив нужную версию (в нашем примере directx 9).
Откуда лучше скачивать directx?
Только с официального сайта Microsoft либо через Центр Обновления Windows. На сайте Microsoft для устранения выше указанной ошибки есть специальный Веб-установщик среды выполнения Directx для конечного пользователя. Скачайте его и запустите. Он установит недостающие компоненты directx. Данный пакет устраняет ошибки, возникающие из-за отсутствия в системе следующих файлов:
- D3DX9_24.dll-D3DX9_43.DLL
- D3DX10. DLL-D3DX10_43.DLL
- D3DCompiler_33.dll-D3DCompiler_43.DLL
- D3DX11_42.DLL
- D3DX11_43.DLL
- D3DCSX_42.DLL
- D3DCSX_43.DLL
- XACTENGINE2_0.dll-XACTENGINE2_9.DLL
- XACTENGINE3_0.dll-XACTENGINE3_7.DLL
- XAUDIO2_0.DLL
- XAUDIO2_1.DLL
- XAUDIO2_2.DLL
- XAUDIO2_3.DLL
- XAUDIO2_4.DLL
- XAUDIO2_5.DLL
- XAUDIO2_6.DLL
- XAUDIO2_7.DLL
- XAPOFX1_0.dll-XAPOFX1_5.DLL
- X3DAUDIO1_0.dll-X3DAUDIO1_7.DLL
- XINPUT1_1.DLL
- XINPUT1_2.DLL
- XINPUT1_3.DLL
Не ведитесь на ссылки, которые предлагают скачать directx более новых версий чем у вас установлена. Версию directx можно обновить только через центр обновления. По таким ссылкам вам могут подложить собаку в виде вируса.
Чем отличается DirectX 9 от DirectX 11?
Данный пакет команд появился в 1994 году, когда компания Microsoft готовилась выпустить на рынок новую версию ОС – Windows 95, однако, ее коммерческий потенциал был весьма сомнителен, так как из-за защиты и оптимизации работы многие разработчики не могли получить полноценный доступ к видеокарте, а значит использовать все ее ресурсы. Именно тогда родилась идеи написать пакет приложений способных дать такую возможность программистам. Это вывело удобство работы с данной ОС на принципиальной новый уровень, который стал конкурентоспособным с написанием игр под DOS.
В настоящее время существует несколько версий DirectX, все они работоспособные и по большому счету игроки могут пользоваться той, которая поддерживается их видеокартой. Как правило, новая версия DirectX выпускается совместно с новыми играми и влечет за собой замену видеокарты на более мощную и современную. Однако, стоит ли новая версия таких затрат или можно обойтись старым железом. Если говорить коротко, то новая версия пакета всегда дает программистам новые возможности, что для пользователя выливается в более красивые спецэффекты. Стоит сразу отметить, что отсутствие DirectX может иметь два последствия:
- Игра будет без каких-либо спецэффектов.
- Игра не запустится, а пользователь будет видеть на экране ошибку.
DirectX 9
DirectX 9 появился в 2002 году и стал по-своему революционным, разработчики вложили в него поддержку шейдеров, что в итоге дало великолепную графику для своего времени. Ярким прим DirectX ером тому может служить игра Need For Speed, выпущенная в 2003 году, где пользователь могли видеть мельчайшие блики на стекле автомобиля, наслаждаться вылетающими из-под колес кусками грязи и снега, а также удивлялись детализации окружающего мира. Все разработчики делали свои игры с учетом этой версии DirectX и так продолжалось до 2006 года, пока вместе с Windows Vista не появился DirectX версии 10.
Интересным фактом стало то, что данная версия не получила широкого распространения, так как сама операционка для которой она было создана не пошла в массы. Многие геймеры и просто пользователи предпочли остаться на более старой ОС и, соответственно, необходимости в обновлении пакета DirectX до 10 версии не было.
DirectX 11
В 2009 году на рынок выходит новая версия Windows под номером 7, а с ней и DirectX 11. Принципиальным отличием данной версии от более старых стало:
- Поток видеоданных стал лучше обрабатываться за счет увеличения их числа.
- Взаимодействие с многоядерными видеокартами стал на порядок лучше.
- Увеличился КПД в целом средних и слабых видеокарт, на одних и тех же настройках видеокарта стала с одной и той же задачей справляться лучше, без лишнего нагрева и усиления работы кулера.
Вышеописанные процессы стали важны для разработчиков, а для игроков это вылилось в улучшение картинки и детализации.
Необходимость перехода
Выше было описано, что улучшилось при появлении DirectX версии 11, однако, многие игроки не смогли это заметить в старых играх. Этому есть вполне логичное обоснование. Разработчики создают свои продукты под ту версию, которая существует в данный момент, поэтому более старые игры просто не несут в себе данных, которые могли бы быть использованы DirectX 11. Чтобы ощутить все возможности этого пакета необходимо скачать новые игры или игры, которые были выпущены с учетом нового DirectX.
Почему многие игры кажутся недостаточно проработанными даже на новых видеокартах с новой версией DirectX. Все дело в том, что большинство производителей в целях экономии ресурсов предпочитают выпускать игры сразу на несколько разных платформ, например, ПК, PlayStation и Xbox. Консоли даже последних поколений не могут сравниться производительностью с мощными игровыми ПК, поэтому производители закладывают в свои игры максимум для консолей, что для персонального компьютера может быть лишь на уровне среднего использования. Только игры, выпущенные эксклюзивно под ПК или специально адаптированные под него, как это было с GTA 5, могут похвастаться отличным изображением и использование всей мощи видеокарты.