admin / 18.09.2018

Directx 9 и 11 разница

Что такое DirectX?

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

Данный пакет команд появился в 1994 году, когда компания Microsoft готовилась выпустить на рынок новую версию ОС – Windows 95, однако, ее коммерческий потенциал был весьма сомнителен, так как из-за защиты и оптимизации работы многие разработчики не могли получить полноценный доступ к видеокарте, а значит использовать все ее ресурсы. Именно тогда родилась идеи написать пакет приложений способных дать такую возможность программистам. Это вывело удобство работы с данной ОС на принципиальной новый уровень, который стал конкурентоспособным с написанием игр под DOS.

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

  • Игра будет без каких-либо спецэффектов.
  • Игра не запустится, а пользователь будет видеть на экране ошибку.

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

Необходимость перехода

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

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

Почему многие игры кажутся недостаточно проработанными даже на новых видеокартах с новой версией DirectX. Все дело в том, что большинство производителей в целях экономии ресурсов предпочитают выпускать игры сразу на несколько разных платформ, например, ПК, PlayStation и Xbox. Консоли даже последних поколений не могут сравниться производительностью с мощными игровыми ПК, поэтому производители закладывают в свои игры максимум для консолей, что для персонального компьютера может быть лишь на уровне среднего использования. Только игры, выпущенные эксклюзивно под ПК или специально адаптированные под него, как это было с GTA 5, могут похвастаться отличным изображением и использование всей мощи видеокарты.

Чем отличаются версии DirectX

Технологии прогрессируют довольно быстро. Каждая новая версия DirectX позволяет программистам добавить какой-нибудь новый эффект в игру, а старые — оптимизировать.

Думаю, наиболее наглядно разницу между возможностями DirectX разных версий покажет это видео:

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

Второй пример — игра Crysis 2:

Считается, что чем выше версия DirectX — тем лучше картинка. Но не стоит ожидать чуда — зачастую изменения не бросаются в глаза. На мой взгляд, главная причина столь малой разницы качества изображения в том, что сейчас игры разрабатываются одновременно для игровых консолей Xbox, Sony PlayStation и ПК. Приставки по сравнению с современными «персоналками» слабы в плане производительности и поддерживаемых технологий. В итоге мы играем на компьютере в игры, графика которых осталась на уровне года выхода консолей, любуясь на размытые текстуры и упрощенные эффекты. Да, есть игры, разработанные или доработанные для ПК, но таких единицы.

Типичный пример межплатформенности — игра Skyrim:

Разница в графике между Playstation 3 и Xbox360 заключается в деталях: на PS3 где-то воды капает мало, на Xbox 360 тени не реагируют на мерцающие источники света. На ПК (в видео обозначен как «Windows») таких проблем нет, плюс видны объекты на дальних расстояниях, но больше никаких улучшений нет. Позже разработчики выпустили набор текстур высокой четкости для ПК-версии игры, но кардинально графику это не улучшило.

Чтобы вы увидели, какую графику способен выдавать компьютер — пример игры, заточенной под использование всех возможностей видеокарты и процессора:

Видите разницу? Красивое освещение, четкие текстуры, плавные движения. Такой уровень детализации был бы недостижим с помощью устаревших технологий DirectX 9 — слишком много объектов находятся в кадре одновременно. Также присутствует много эффектов, которые реализуются силами видеокарт с поддержкой DirectX 10 как минимум.

Возможности графического движка игры Crysis 3:

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

Как узнать, какую версию DirectX поддерживает моя видеокарта и Windows?

Видеокарта

Подсмотреть информацию о том, какую версию DirectX поддерживает ваша видеокарта, можно на официальной страничке сайта производителя и в любом онлайн-магазине. Например, в Яндекс.Маркете. Однако, в целом, все видеокарты, вышедшие после 2015 года, поддерживают 12-ю версию. Хотя именно с DX12 есть нюансы, об этом ниже.

Windows

Узнать, какую версию поддерживает Windows, сложнее, потому что многое зависит от установленных обновлений. Если у вас Windows 10, то там точно самая свежая версия API. Для всех остальных ОС алгоритм таков:

1. Убедитесь, что у вас установлены все обновления Windows (Пуск — Все программы — Центр обновления Windows — Поиск обновлений — Установить).

2. Необязательный пункт: обновите драйвер видеокарты до самой новой версии:

Официальная страница драйверов для видеокарт nVidia

Официальная страница драйверов для видеокарт AMD (см. выбор драйвера справа вверху страницы)

Официальная страница драйверов для видеокарт Intel (выберите в списке «Графические адаптеры», затем нужную модель)

3. Нажмите Пуск — Выполнить (если нет такого пункта, можно нажать сочетание клавиш Win+R, где Win — кнопка с логотипом) — Введите «dxdiag» без кавычек — затем кнопка ОК.

Появится окно «Средство Диагностики DirectX». На вкладке «Система» можно увидеть установленную на компьютере версию DirectX:

Эту версию сменить нельзя, за исключением обновления системы — например, при обновлении Windows Vista SP1 на SP2 поддерживаемая версия изменится с 10.1 на 11.

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

В интернете полно всяких наборов «DirectX 10 для Windows XP» и аналогичных. Запомните — это обман. В Windows XP невозможно включить поддержку современных версий DirectX.

Нужно ли устанавливать DirectX с сайта Microsoft? Что это дает?

Кратко: можно, только версию DirectX это не изменит!

Если хотите, чтобы игры запускались нормально — обязательно установите все обновления из Центра обновления Windows, потому что именно оттуда Windows берет свежие версии библиотек. Подтверждение от Microsoft.

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

Windows 7, 8 и 10 эти библиотеки, в общем-то, не нужны, потому что требуемые обновления приходят через Центр обновлений. Но если у вас не запускается какая-то старая (2005-2010 годов) игра, использующая DirectX 9, пробуйте установить тот самый инсталлятор. Авось поможет.

Список ошибок DirectX, исправляемые с помощью этого установщика

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

DirectX — загрузка полного комплекта обновлений

Судя по датам, на момент написания этой записи обновления компонентов DirectX выходили 18 апреля 2011 года (обновление от 29.01.2016 г.: теперь все приходит через Центр обновлений другими пакетами).

Загруженная программа — по сути самораспаковывающий архив. Откроем его архиватором 7-zip:

Обратите внимание на имена файлов — в инсталляторе содержатся как файлы, имеющие отношение в DirectX 9 (d3dx9_31, d3dx9_32, d3dx9_33 и т.д), так и к DirectX 10 (d3dx10_35, d3dx10_40 и т.д.). Каждая версия обновляется — выходят новые версии .dll библиотек, добавляются новые.

Еще раз напомню: это не обновление DirectX с версии на версию. Это обновление версий программных библиотек и к нумерации 9, 10, 10.1, 11, 11.1 отношения не имеет. Вы не сможете повысить версию установленного DirectX таким способом.

После установки добавятся новые библиотеки и обновятся старые, что даст возможность запуститься тем играм, которые сообщают об ошибке отсутствия d3dx*. Так что попробовать установить можно.

DirectX 12

Много слухов циркулирует вокруг DirectX 12. Попробую расставить все точки над i.

Windows 7, 8 и DirectX 12

Нет. Нет и ещё раз нет! DirectX 12 в Windows 7 и 8 не будет. Теоретически это возможно сделать, если производители видеокарт и Microsoft скооперируются. На практике — увы. 12-я версия — прерогатива Win10.

Многие старые видеокарты частично поддерживают DirectX 12

Представители производителя видеокарт AMD и nVidia заявляли, что видеокарты, поддерживающие DirectX 11, будут поддерживать и DirectX 12. Это оказалось маркетинговым лукавством. Преимущество DirectX 12 перед 11 — многократное увеличение производительности за счет оптимизации работы с компонентами видеокарты (памятью, видеопроцессором). «Железная» часть видеокарт, выпущенных в эпоху DirectX 11 и ранее, не приспособлена под DirectX 12, поэтому основная «фишка» новой версии API — ускорение обсчета графики — работать не будет.

То есть современные игры, которым для работы требуется 12-я версия графического API, с такими видеокартами запустятся. Но качество графики придётся выкрутить на минимум, чтобы получить более-менее приличную частоту кадров.

Есть три уровня поддержки старыми видеокартами нового графического API: Tier 1, Tier 2 и Tier 3. Tier 3 — самая полная поддержка стандарта. И она, пожалуй, наиболее близка к тому, что представляет собой DX12. В современные игры с ними на минимальных настройках графики можно играть вполне комфортно.

Видеокарты без поддержки DirectX 12 (но поддерживающие DX10 и/или 11):

Intel ValleyView2 HD Graphics

Intel HD Graphics 2500

Intel HD Graphics 4000

И новее.

AMD Radeon HD 5xxx

AMD Radeon HD 6xxx

AMD Radeon HD серий 7xxxG, M и D

AMD Radeon HD 8xxxG

И новее.

Вроде как все должны.

Видеокарты с поддержкой DirectX 12 Tier 1

Intel HD Graphics 4400

Intel HD Graphics 4600

Intel HD Graphics 5000

Intel Iris Graphics 5100

Intel Iris Pro Graphics 5200

Нет.

NVIDIA GeForce GT 430

NVIDIA GeForce GT 440

NVIDIA GeForce GTS 450

NVIDIA GeForce GTX 460

NVIDIA GeForce GT 520M

NVIDIA GeForce GT 520

NVIDIA GeForce GT 525M

NVIDIA GeForce GT 540M

NVIDIA GeForce GTX 550 Ti

NVIDIA GeForce GTX 560

NVIDIA GeForce GTX 560 Ti

NVIDIA GeForce GTX 570

NVIDIA GeForce GTX 580

NVIDIA GeForce 610M

NVIDIA GeForce GT 610

NVIDIA GeForce GT 620M

NVIDIA GeForce GT 620

NVIDIA GeForce GT 630M

NVIDIA GeForce GT 630

NVIDIA GeForce GT 635M

NVIDIA GeForce GT 640M

NVIDIA GeForce GT 640

NVIDIA GeForce GT 730

И новее.

Видеокарты с поддержкой DirectX 12 Tier 2

Intel — нет.

AMD — нет.

NVIDIA GeForce GT 650M

NVIDIA GeForce GTX 650

NVIDIA GeForce GTX 650 Ti

NVIDIA GeForce GTX 650 Ti Boost

NVIDIA GeForce GTX 660M

NVIDIA GeForce GTX 660

NVIDIA GeForce GTX 660 Ti

NVIDIA GeForce GTX 670

NVIDIA GeForce GTX 680

NVIDIA GeForce GT 740M

NVIDIA GeForce GT 750M

NVIDIA GeForce GTX 750

NVIDIA GeForce GTX 750 Ti

NVIDIA GeForce GTX 760

NVIDIA GeForce GTX 765M

NVIDIA GeForce GTX 770

NVIDIA GeForce GTX 780

NVIDIA GeForce GTX 780 Ti

NVIDIA GeForce 840M

NVIDIA GeForce GTX 850M

NVIDIA GeForce GTX 860M

NVIDIA GeForce GTX 970

NVIDIA GeForce GTX 980

И новее.

Видеокарты с поддержкой DirectX 12 Tier 3

Intel — нет.

AMD Radeon HD 7750

AMD Radeon HD 7770

AMD Radeon HD 7850

AMD Radeon HD 7870

AMD Radeon HD 7950

AMD Radeon HD 7970

AMD Radeon R4 Graphics

AMD Radeon HD 8600

AMD Radeon HD 8800

AMD Radeon R7 200

AMD Radeon R9 200

AMD Radeon R9 390X

И новее.

А вот у нВидии видеокарт с полной поддержкой DirectX 12 пока нет.

Обновление от 3.03.2018: уже есть. Все современные поддерживают 12-ю версию.

Обратите внимание — после 2015 года поддержка 12-й версии API улучшилась, сейчас об уровнях Tier знать не требуется.

Дополнительные уровни — Feature levels

Мне, как владельцу AMD Radeon HD7950, хотелось бы радоваться, что у неё точно-точно есть поддержка DX12, но не получается. Дело в том, что Microsoft пошла дальше и ввела дополнительные уровни особенностей («Feature levels»). Если уровни Tier — индикатор для покупателей, то Feature levels предназначены для разработчиков и сообщают о том, какие же возможности новой версии API поддерживаются процессором видеокарты полноценно.

Feature level 11.0 — поддержка видеокартой DirectX11 и функции «Resource Binding» из Tier 1. Представители таких видеокарт: Nvidia GeForce GTX 400/500/600/700.

Feature level 11.1 — DirectX 11.1 и поддержка множества функций, которые я здесь приводить не буду (зачем?). Представители:

  • Nvidia GeForce GTX 745/750;
  • AMD Radeon HD серий 7700-7900/8500-8900, Rx 240-280;
  • Intel HD Graphics 4200-5200, 5300-6300;

Feature level 12.0 — поддержка некоторых возможностей Tier 1 и Tier 2. Представители: AMD Radeon HD 7790/8770, Rx 260/285/290 и новее.

Feature level 12.1 — полная поддержка Tier 1, аппаратная поддержка всех возможностей DirectX 12.

Таким образом, ни одна из видеокарт, вышедших до 2015 года, не поддерживает DirectX 12 полностью. Часть возможностей реализована на программном уровне, поэтому одна и та же игра, использующая DX 11 и DX 12, не получит ощутимого прироста производительности при переходе на новую версию API.

Итог

От уровня доступа к «железу» компьютера сильно зависит скорость работы программ. Особенно это касается игр. DX 12 предоставляет возможности, которыми разработчики не должны пренебрегать. Увы, на практике они не всегда используются полностью. Поэтому GTA V, вышедшая на ПК в 2015 году, выглядит лучше и выдаёт на том же железе больше кадров в секунду, чем схожая геймплеем Watch Dogs 2, появившаяся на свет полтора года спустя.

FILED UNDER : Железо

Submit a Comment

Must be required * marked fields.

:*
:*