Какие игры поддерживают directx 12
21 января компания Microsoft официально объявила о том, что осенью 2015 года состоится релиз новой операционной системы Windows 10. А вместе с ней и запуск 12-го поколения DirectX. С момента появления этого API прошло уже почти двадцать лет, поэтому в этот раз мы решили оглянуться назад и вспомнить, как создавалась и развивалась программная оболочка для компьютерной графики на протяжении этого длинного отрезка.
Сегодня DirectX, разрабатываемый компанией Microsoft, уже воспринимается как должное. Все привыкли, что этот API является неотъемлемой частью Windows. Новая итерация «оси» под номером 10 не стала исключением. Еще осенью прошлого года Microsoft анонсировала двенадцатое поколение DirectX. Этому событию предшествовало пять лет почти полной тишины из стана Microsoft. Компания ограничивалась лишь плановыми обновлениями API, и никакой определенности насчет будущего DirectX не было. Масла в огонь подливало и то, что многие компании-разработчики в открытую поддерживали конкурирующую технологию OpenGL. В их число входила, например, компания Valve. Вдобавок ко всему, компания AMD представила свой низкоуровневый программный интерфейс Mantle, который должен был составить конкуренцию как OpenGL, так и DirectX. К счастью, Microsoft не вышла из игры, и все это время разработчики компании упорно трудились над созданием DirectX 12, который станет частью анонсированной в январе операционной системы Windows 10. Релиз «десятки» запланирован на ближайшую осень, а это значит, что уже в конце 2015 (либо в начале 2016) мы увидим первые игры, поддерживающие новый API.
Даже спустя столько лет первый Crysis по-прежнему хорош. А ведь это всего лишь DirectX 10
Чтобы немного скрасить время ожидания, мы предлагаем вам вспомнить, как создавался и развивался DirectX на протяжении последних 20 лет.
Таблицы и наборы дескрипторов
Привязка ресурсов в Direct3D 11 довольно удобна и при этом обладает довольно высоким уровнем абстрагирования. Тем не менее принцип ее работы также не позволяет «на полную катушку» использовать возможности нынешнего «железа». При использовании Direct3D 11 в играх создаются специальные объекты представления, а затем эти представления привязываются к определенным «слотам» различных этапов шейдера в конвейере. Шейдеры, в свою очередь, считывают информацию из этих слотов, которые фиксируются в момент отрисовки. Основной недостаток такой модели заключается в том, что, когда в игре требуется отрисовка с использованием иных ресурсов, необходимо выполнить повторную привязку и только после этого делать draw call. Как вы понимаете, этот процесс очень трудоемкий. Поэтому в Direct3D 12 он был переработан с учетом возможностей новых процессоров и видеокарт.
Схематичное изображение дескриптора
В двенадцатой версии API на смену явной привязке к слотам пришла модель, использующая набор дескрипторов (descriptor heap), в которые игра записывает свои представления ресурсов. Такой подход позволяет графическому процессору напрямую записывать аппаратное описание ресурса в память. Для определения того, какие именно ресурсы будет использовать конвейер для конкретного вызова отрисовки, в играх указываются одна или несколько таблиц дескрипторов, которые представляют собой подмассивы полного набора дескрипторов. И поскольку набор дескрипторов состоит из специфичных, понятных «железу» данных, то смена таблиц осуществляется намного быстрее, нежели процесс повторной привязки в Direct3D 11.
Схематичное изображение набора дескрипторов
В дополнение к таблицам и наборам дескрипторов Direct3D 12 поддерживает динамическую индексацию в шейдерах, что обеспечивает высокую гибкость и позволяет использовать новые технологии рендеринга. Например, современные движки рендеринга, использующие отложенный подход (deferred rendering engines), обычно кодируют идентификатор объекта или материал в предварительный g-буфер. В Direct3D 11 при использовании большого количества материалов значительно замедлялась заключительная стадия рендеринга. Динамическая индексация решает именно эту проблему. При использовании Direct3D 12 сцена с одной тысячей материалов финализируется так же быстро, как и сцена с десятью материалами.
Заключение
Итак, выше мы рассмотрели несколько игр с интегрированной поддержкой DirectX 12. На самом деле их гораздо больше, просто мы выбрали лучшие. Именно они являются самыми интересными (а некоторые и самыми новыми).
Однако стоит напомнить, что для нормального функционирования таких игрушек потребуется видеокарта, которая поддерживает DirectX 12 на аппаратном уровне. Без этого вы не сможете использовать данный графический API.
Ранее в этом году Microsoft объявила о планах представить поддержку DirectX 12 API для Windows 7 в дополнение к Windows 10. Впрочем, до сих пор только специальная версия World of Warcraft могла работать под DirectX 12 на Windows 7. Теперь Microsoft выпустила все необходимые программы и библиотеки для разработки и запуска игр под Windows 7 с поддержкой DirectX 12. В блоге Microsoft приведена вся необходимая информация.
Microsoft объясняет свой шаг большим интересом со стороны пользователей после весеннего анонса, так что программный гигант решил продолжать работать над поддержкой DirectX 12 под Windows 7.
Microsoft также опубликовала некоторые примеры на GitHub, которые должны помочь разработчикам в создании своих проектов.
Пока не совсем понятно, какие игры получат соответствующую поддержку. Кандидатов, конечно, много. Весной Microsoft говорила о том, что по сравнению с Windows 10 придется смириться с небольшими компромиссами по производительности. Они связаны с глубокими оптимизациями DirectX 12 и Windows 10 на уровне операционной системы. Под Windows 7 данных оптимизаций нет.
DirectX 12 API представляет собой низкоуровневое API, которое обеспечивает разработчиком доступ к "железу" без дополнительных программных прослоек. Что, среди всего прочего, должно обеспечить более полную загрузку аппаратного обеспечения. Причем это верно не только для видеокарты, но и для процессора, который может обрабатывать вызовы Draw Call более эффективно.
Остается вопрос поддержки самой операционной системы Windows 7, которая заканчивается 14 января 2020. Весьма интересен и другой вопрос: почему Microsoft не пошла на такой шаг раньше? Многие годы Microsoft настаивала на том, что адаптировать DirectX 12 под старые версии Windows смысла нет - но именно это мы и видим сейчас.
DirectX 11 был выпущен почти 5 лет назад, в июле 2009 года. В Microsoft не слишком спешили выпускать новое поколение API, ограничиваясь лишь плановыми обновлениями. Однако в марте текущего года DirectX 12 наконец-то был анонсирован. Какие же изменения получила новая версия программного интерфейса?
В марте текущего года в рамках ежегодной конференции разработчиков игр GDC 2014 (Game Developer Conference) компания Microsoft анонсировала API нового поколения — DirectX 12. С момента запуска предыдущей версии API прошло почти 5 лет (напомним, DirectX 11 увидел свет аж в июле 2009 года), и, даже несмотря на то, что программный интерфейс Microsoft получил несколько обновлений, его позиции заметно пошатнулись. Влияние API OpenGL, напротив, стало более существенным. А компания AMD даже запустила свой собственный низкоуровневый программный интерфейс Mantle. «Тишина» из стана Microsoft дала почву для не самых лучших прогнозов относительно дальнейшего развития DirectX, однако весенний анонс двенадцатой версии API расставил все точки над «ё». Microsoft снова в игре.
Одной из первых компьютерных игр с поддержкой DirectX 12 стала демо-версия Forza Motorsport 5
О нелегкой судьбе Microsoft
Последние несколько лет стали не самыми удачными для Microsoft. Пользователи с прохладой встретили новую операционную систему Windows 8, не с лучшей стороны проявила себя и мобильная платформа Surface. Вдобавок ко всему, компания подпортила себе репутацию всем известным лейблом Games for Windows и сервисом LIVE. DirectX 11 едва ли не пошел по стопам других неудачных проектов Microsoft последних лет: разработчики не спешили переводить игры «на рельсы» нового API, и большинство развлекательных программ поддерживали его только опционально. А та же Valve и вовсе в открытую склонялась к OpenGL. В общем, американской компании пришлось нелегко на всех фронтах — и не только в игровой сфере.
Платформа Microsoft Surface не снискала особого успеха
Как уже говорилось выше, с момента выпуска DirectX 11 до анонса двенадцатой итерации API прошло почти 5 лет. Microsoft еще никогда так не затягивала с выпуском нового поколения программного интерфейса. Ходит множество слухов относительно такой политики, но, скорее всего, основная причина этого кроется в долгом жизненном цикле игровой консоли Xbox 360. В компании были попросту не заинтересованы в развитии нового API для уходящей в прошлое приставки. DirectX 12 разрабатывается уже с прицелом на ее преемницу — Xbox One, которая была выпущена лишь в ноябре прошлого года, а в России, кстати, официально не представлена до сих пор. Но не консолью единой: DirectX 12 будет поддерживаться целой гаммой устройств, начиная от смартфонов и планшетов и заканчивая десктопами.
Официальные продажи Xbox One в России стартуют 26 сентября
Что же нового принесет нам двенадцатая версия «директирисы»? Главным отличием нового API от всех его предшественников стало снижение уровня абстрагирования оборудования. DirectX 12 предоставит иную модель программирования. Как говорят в Microsoft, «приближенную к железу» («closer to the metal»). Используя такую модель, разработчики получат более широкий доступ к различным возможностям графического чипа. Кроме этого, DirectX 12 теперь поддерживает объекты состояния конвейера (PSO, pipeline-state object) и таблицы дескрипторов. Наконец, API получил новые возможности для конвейера рендеринга, которые значительно увеличивают производительность в таких алгоритмах, как определение коллизий, расчет прозрачности или геометрическая отбраковка. А теперь давайте подробнее остановимся на каждом изменении.
CD Projekt: DirectX 12 не повысит производительность Xbox One
Качество
Как я уже говорил, DirectX 12 разработан для более качественной оптимизации под современное железо. Технологии Tiled Resources, Typed UAV и Bind, входящие в состав этого API, существенно (на бумаге) экономят ресурс видеопамяти и ориентируют API на использование большего числа ядер центрального процессора. Принцип консервативной растеризации ускоряет расчет теней и фильтра MSAA. Логично, что оптимизация приведет и к улучшению качества графики, но самое главное — это все же увеличение стабильности и быстродействия.
DirectX 12 — это не про качество.
Игра про «Агента 47» сразу же получила поддержку DirectX 12. Клиент включает встроенный бенчмарк. Он заметно облегчает процесс тестирования, но некоторые коллеги отмечают, что в игре есть локации, которые сильнее нагружают систему, нежели подготовленный разработчиком скрипт. Rise of the Tomb Raider обзавелась поддержкой нового API при помощи патча. Игра также обзавелась встроенным бенчмарком.
Списки команд и пакеты
В Direct3D 12 также появилась новая модель управления нагрузкой GPU, включающая в себя списки команд и пакеты. В Direct3D 11 все задания GPU отправлялись через непосредственный контекст (immediate context), который представляет собой единый поток команд. А для того чтобы обеспечить многопоточность, в играх также используются отложенные контексты, которые тем не менее не совсем подходят под архитектуру нынешних процессоров.
Модель отправки заданий в Direct3D 12 базируется на списках команд, который содержат все данные, необходимые для работы GPU. В каждом списке команд указывается, какой объект PSO нужно использовать, какие текстуры и буферные данные необходимы. Также в списке находятся аргументы для всех вызовов отрисовки. Список команд сам по себе автономный и не имеет состояния, поэтому драйвер может заранее рассчитать все необходимые для GPU команды. В конце все списки сериализуются и отправляются в GPU посредством очереди команд.
Схематичное представление очереди команд
Кроме списков команд, в Direct3D 12 появилась поддержка пакетов. Пакеты представляют собой наборы команд, которые могут быть использованы несколько раз с различными исходными данными. Пакеты, к примеру, будут использоваться в том случае, если на экране нужно нарисовать два и более одинаковых объекта с разными текстурами. При этом драйвер готовит инструкции для GPU лишь один раз.
Mortal Kombat 11
Долгожданное продолжение культовой серии файтингов. От этой игрушки ждали многого. И, нужно сказать, ожидания оправдались. Теперь это вовсе не бездумный мордобой. Появился настоящий (и весьма продуманный) сюжет.
Все закручено на том, что Рейден своими выкрутасами разозлил богиню времени, и она решила перезапустить вселенную. Но только так, чтобы настырного монаха в ней не было. Для этого она вызвала из прошлого несколько культовых персонажей.
Было весьма забавно наблюдать, как постаревший Джонни Кейдж встречает себя молодого. Отцы и дети тоже воссоединились. Из небытия был извлечен и Шао-Кан, который умер давным-давно. И он искренне недоумевает, почему на его троне сидит кто-то другой.
Разработчики, видимо, решили сыграть на ностальгических чувствах аудитории. И им это удалось. Конечно, не всех персонажей вернули, но ключевых-то точно не забыли. Именно поэтому данный файтинг так интересен преданным поклонникам серии.
Графика игрушки заметно выросла в техническом плане. Но фаталити от этого не стали реалистичнее. Все выдумано разработчиками. И от этого никуда не деться. Зато геймплей заметно вырос. А звуковое сопровождение и вовсе на самом высоком уровне.
Данная игрушка подойдет тем, кто хочет вдоволь поностальгировать и при этом получить совершенно новый файтинг с отлично проработанной графикой, физикой и механикой. А главное – игра нативно поддерживает DirectX 12.
- Невероятно проработанная графика.
- Отличная физика.
- Превосходно продуманный сюжет.
- Возвращение культовых персонажей.
- Огромное количество сюжетных роликов.
- Продвинутый режим карьеры.
- Отличный саундтрек.
Недостатки:
Объекты состояния конвейера
Одним из недостатков Direct3D 11 была так называемая проблема вызовов отрисовки (draw call). С ней благополучно справились программисты AMD при разработке API Mantle. Похожим образом эта проблема была решена и в Direct3D 12. Для этого потребовалась значительная переработка графического конвейера. Однако для начала нужно объяснить, как же происходит рендеринг картинки в Direct3D 11 и в чем конкретно заключается недостаток вызовов отрисовки.
Схема рендеринга в Direct3D 11
Для описания любого объекта на экране Direct3D 11 использует состояния конвейера: это и состояние входного ассемблера (input assembler state), и состояние пиксельного шейдера (pixel shader state), а также состояния растеризатора (rasterizer state) и выходного смесителя (output merger state). Все они могут изменяться независимо друг от друга. Такая архитектура представляет собой удобную и относительно высокоуровневую реализацию графического конвейера. Однако в силу того, что между этими состояниями существуют различного рода зависимости, такое представление графического конвейера не совсем подходит для современного «железа». Объясним почему. Важно понимать, что стадии конвейера выполняются не последовательно, а в какой-то степени параллельно. К примеру, многие GPU обрабатывают состояния пиксельных шейдеров и выходного смесителя в одном аппаратном блоке. Всякий раз от рантайм-компонента DirectX требуется определить состояние конвейера (совокупность состояний каждой стадии) и ресурсов (вершин, текстур и так далее), над которыми будут производиться операции. Как только все данные известны, производится вызов отрисовки. Иными словами, draw call вызывает рендеринг объекта. Все эти операции выполняются силами центрального процессора. И когда объектов на экране становится много, скорости CPU не хватает для их обработки, и максимальное количество вызовов отрисовки на кадр уменьшается. В этом и заключается смысл проблемы draw calls.
Схема рендеринга в Direct3D 12
В Direct3D 12 большая часть состояний объединена в неизменяемый объект состояния конвейера (PSO). Это позволяет драйверу, не дожидаясь вызова отрисовки, конвертировать этот объект в аппаратные инструкции, необходимые для последующей работы GPU. Тут же стоит отметить, что система может динамически менять используемый объект PSO. После этого в аппаратные регистры копируется лишь небольшой объем рассчитанных состояний, тогда как в Direct3D 11 аппаратное состояние определялось «на ходу». В итоге такой подход ликвидирует то «бутылочное горлышко», коим являлся центральный процессор, и обеспечивает большее количество вызовов отрисовки на каждый кадр.
Взгляд со стороны
Первым, кто посеял сомнения в тотальном превосходстве DirectX 12, стал глава Xbox Фил Спенсер. Отвечая на вопросы в Twitter, Спенсер сказал, что «DirectX 12 не привнесет каких-то масштабных изменений на Xbox One. Новый API лишь даст программистам больше свободы при создании новых проектов». Интерпретировать слова главы Xbox можно по-разному. Очевидно одно: даже если DirectX 11 игры начнут «переводить на рельсы» DirectX 12, большого прироста производительности на первых порах ожидать не стоит. Причина этого кроется в том, что программирование под DirectX 11 и DirectX 12 будет значительно различаться. И игры, разработанные с учетом всех ограничений DirectX 11, вряд ли смогут работать быстрее с DirectX 12 — как раз из-за этих самых ограничений одиннадцатой версии, заложенных на стадии проектирования приложений. Конечно, на помощь всегда может прийти оптимизация. Однако, на наш взгляд, по-настоящему раскрыть потенциал нового API смогут лишь заточенные под него игры.
Свою ложку дёгтя в бочку мёда добавил и программист компании CD Projekt RED Балаш Торок. По его словам, достичь разрешения 1080p на Xbox One будет непросто. «Думаю, многие просто не понимают, что и как будет упрощать DirectX 12, — говорит Торок. — В большинстве игр нагрузка на шейдерные блоки консоли очень велика. И новая версия DirectX эту ситуацию не исправит. Конечно, можно будет увеличить количество полигонов, но их все равно не получится сгладить. И в таком случае теряется весь смысл. Думаю, выход нового API повлияет лишь на то, как будут мыслить при разработке графические дизайнеры, вот и всё».
CD Projekt RED сейчас занимается разработкой игры The Witcher 3, выход которой запланирован на 24 февраля 2015 года на PC, Sony Playstation 4 и Xbox One
Тем не менее в IT-индустрии преобладают позитивные настроения относительно DirectX 12. Например, о новом API довольно лестно отзывается Эндрю Лауритцен — ведущий инженер подразделения Advanced Technology Group компании Intel. «Девелоперы уже достаточно долго просили внести в API эти изменения (которые получил DirectX 12 — прим. автора), и пока что все ими довольны». Отвечая на вопрос о сравнении API, Лауритцен не стал делать никаких выводов об их производительности, сделав акцент лишь на ключевых различиях. По его словам, в плане архитектуры к DirectX 12 наиболее приближен API компании AMD Mantle. Что касается OpenGL, то этот интерфейс имеет много общего с одиннадцатой версией DirectX. О конкуренции между Mantle и DirectX 12 речи пока быть не может. «У Mantle и DirectX 12 похожие задачи, однако Mantle работает только на графических процессорах AMD. Эти API можно сравнивать только на AMD’шном железе, а для этого нам стоит дождаться официального выхода DirectX 12». Не забыл Лауритцен и об OpenCL, однако уточнил, что это скорее вычислительный API, не предназначенный для графики и более схожий с пакетом DirectCompute.
В положительном ключе о DirectX 12 высказался и представитель AMD Роберт Хэллок, отметив при этом, что не рассматривает интерфейс Microsoft как прямого конкурента Mantle. «DirectX 12, Mantle и OpenGL будут дополнять друг друга за счет своих уникальных возможностей», — сказал Хэллок. Как и Лауритцен, он отметил важность того, что в лице Mantle и DirectX 12 разработчики наконец-то получают похожие на консольные, низкоуровневые API для создания игр. Также представителю AMD был задан вопрос, не станет ли поддержка Mantle преимуществом для видеокарт Radeon в плане работы с низкоуровневым DirectX 12. «Пока что об этом сложно говорить, — ответил Хэллок. — Но к моменту запуска DirectX 12 разработчики будут работать с Mantle уже на протяжении 20-24 месяцев, поэтому это может сыграть нам на руку».
Шутер Battlefield 4 поддерживает API Mantle
Наконец, не остались в стороне от обсуждения нового API Microsoft и ведущие разработчики игр. О своем видении ситуации рассказал инженер Crytek Тьяго Соуза. «С точки зрения разработчика DirectX находился в стагнации уже несколько лет, — сказал Соуза. — Однако двенадцатая версия подоспела как раз вовремя. Изменения в новом API позволят нам решить растущие проблемы с рендерингом в реальном времени». Прокомментировал инженер Crytek и решенную проблему draw calls: «Теперь художники получат больше свободы и смогут рисовать более интересные уровни». Соуза также отметил, что многое, о чем программисты просили Microsoft, было реализовано в DirectX 12. Однако в одном моменте Microsoft пока что не пошла навстречу девелоперам: несмотря на их просьбы, операционная система Windows 7 не будет поддерживать новый API. Пока план таков. Не секрет, что многим игровым компаниям хотелось бы, чтобы DirectX 12 поддерживался на «семёрке», поскольку это значительно расширит потенциальный рынок для их продуктов.
2016 год станет особенным и судьбоносным для компьютерных геймеров. AMD и NVIDIA представят новейшие архитектурные разработки: Polaris и Pascal. Выйдет большое количество игр, поддерживающих DirectX 12. Первые «ласточки» уже появились в продаже. А это значит, что настало время на деле оценить возможности этого API.
На словах у Microsoft все просто великолепно. DirectX 12 дает программисту полный доступ к комплектующим компьютера. «Полный доступ к ресурсам железа» способствует лучшей оптимизации игр. Если это интересно разработчику, конечно же. А «улучшенная оптимизация» — это рациональное использование системных требований. Цепочка ясная и логичная. По идее, все должны быть в плюсе. Разработчики реализуют свой творческий потенциал и обзаведутся любовью (и денежками) геймеров. Игроки получат качественный продукт без серьезных затрат на покупку очень мощного компьютерного железа.
30 сентября 2016 года DirectX исполнится 21 год. Но только в 12-й версии Microsoft решила перейти к низкоуровневому программированию.
Железный эксперимент: DirectX 12 против DirectX 11
Deus Ex: Mankind Divided
Отличный экшен, который в свое время завоевал сердца многих пользователей. Это превосходная игрушка с изумительным сюжетом и шикарной графикой (для своего года выпуска). А еще у Deus Ex интереснейший геймплей.
Сюжет рассказывает о человеке, который по стечению обстоятельств стал киборгом. Он борется с несправедливостью в мире, где правят машины и искусственный интеллект. Всех людей превратили в зомби с чипами в мозгах.
Экшен насыщен сложными боссами и врагами послабее. Игрок волен выбирать стиль: или идти напролом и крошить всех подряд, или использовать режим невидимки и сделать все тихо, без шума и пыли. Все зависит от предпочтений геймера.
Однако иногда приходиться комбинировать стили, так как одной огневой мощи оказывается недостаточно. Именно поэтому Deus Ex: Mankind Divided — одна из интереснейших игрушек своего жанра. В этом мире никогда не будет скучно.
Механика в игре отличная. Все не так уж сложно и не совсем просто. Казуальным этот экшен назвать никак нельзя. А продуманные квесты выглядят весьма интересно. Стоит пройти их все. Для большей остроты ощущений.
Deus Ex: Mankind Divided полностью поддерживает DirectX 12. При этом игрушка не требует особо многого от компьютеров. Пятилетний «середнячок» легко с ней справится. Хоть и на минимальных настройках графики.
- Интереснейший футуристический сюжет.
- Отменная графика (для своих лет).
- Большой мир с кучей локаций.
- Интересные квесты.
- Сложные боссы.
- Можно комбинировать стили игры.
- Продуманная механика.
- Неплохой геймплей.
- Реалистичная физика.
- Небольшие системные требования.
- Отличный саундтрек.
- Неповторимая атмосфера.
Недостатки:
- Киберпанк-стилистика будет интересной далеко не всем.
- Наблюдаются проблемы с производительностью на некоторых системах (вне зависимости от их мощности и дороговизны), и обновление графических драйверов помогает далеко не всегда.
Forza Horizon 4
Поклонники гоночных симуляторов отлично знают о серии Forza. Но они привыкли к серьезным симуляторам, где нужно учитывать любую мелочь. Но Horizon – это совсем другое. Эта игрушка создана исключительно для развлечений.
Если в более серьезных симуляторах нужно всесторонне прокачивать автомобили, то в Horizon можно изменять только внешний вид транспортного средства. Тем не менее, эта аркада претендует на серьезность, так как управлять машинами довольно-таки сложно.
Ключевой фишкой Forza Horizon 4 является смена погодных условий и даже сезонов. Стоит также отметить, что все гонки происходят в Великобритании. Это значит, что солнечную погоду игрок увидит крайне редко. Туманный Альбион как-никак.
Естественно, бонусные машины тоже с налетом британского стиля. Это всевозможные Aston Martin, классика автопрома и так далее. В целом, игрушка интересная. Она не дает соскучиться. А вот симуляторы надоедают уже после нескольких часов.
Графика у Forza Horizon 4 просто отличная. Но вот с физикой иногда наблюдаются проблемы. Однако радует то, что окружающие объекты проработаны детально. Хоть сейчас вешай скриншоты на рабочий стол в качестве обоев.
Forza Horizon 4 тоже поддерживает DirectX 12. А что самое интересное: игра не требует топового железа. Она спокойно работает на ПК со средней мощностью. Вероятно, так разработчики попытались привлечь большее количество пользователей.
- Превосходная графика.
- Внимание к деталям.
- Отличный саундтрек.
- Большой автопарк (около 480 машин).
- Классические аркадные гонки.
- Смена погоды и сезонов.
- Дополнительные особенности геймплея.
- Сложное управление автомобилем.
- Неповторимый дух Британии.
- Присутствие классических моделей авто.
- Есть возможность кастомизации.
Недостатки:
- Не все в порядке с физикой.
- Распространяется только через Microsoft Store – далеко не самый удобный игровой маркетплейс.
Достойные проекты
Графический API Директ Икс 12 отличается повышенной производительностью и обеспечивает картинку более высокого качества. Он появился вместе с Windows 10, но только совсем недавно его распространение стало глобальным.
Даже в некоторые старые игры была интегрирована поддержка последней версии. И благодаря этому шедевры получили новую жизнь. Конечно, речь идет об игрушках года этак 2015. Никто бы не стал внедрять новый API, скажем, в Heroes III. Да он там и не нужен.
Итак, мы рассмотрим лучшие игрушки из различных жанров, которые полностью поддерживают DirectX 12. Но для нормального функционирования таких игр понадобится и видеокарта с «железной» поддержкой нового API. К счастью, сейчас она имеется даже на бюджетных моделях последних лет.
Практическая часть
Как говорят сами разработчики: «для нас, пользователей, основным преимуществом DirectX 12 станет увеличенная эффективность API, а следовательно, и скорость работы.» Свои слова программисты Microsoft подтвердили на деле. Во время конференции GDC производительность двенадцатой версии DirectX была оценена с помощью известного бенчмарка 3DMark. Пакет работает сейчас только с DirectX 11, но для тестирования он был специально портирован на DirectX 12. Одиннадцатая итерация API активно использует многопоточность, однако в силу особенностей работы, связанных с драйверами и рантаймом, ядра и потоки графического процессора время от времени простаивают. Это наглядно отображено на графиках, приведенных чуть ниже. При использовании DirectX 12 ситуация меняется в лучшую сторону. Примерно на 50% улучшается эффективность использования CPU, а также обеспечивается более эффективное распараллеливание работы между потоками.
Результаты тестирования в режимах DirectX 11 (сверху) и DirectX 12 (снизу). Новый API эффективнее использует ресурсы CPU. В качестве тестового стенда использовалась система GIGABYTE BRIX Pro (Intel Core i7-4770R + Iris Pro Graphics 5200)
Режим Direct3D 11
Режим Direct3D 12
Во время презентации DirectX 12 разработчики Microsoft упомянули и об автомобильном симуляторе Forza Motorsport 5, который является эксклюзивом для платформы Xbox One. Они отметили, что игра использует все возможности приставки «на полную катушку», а все благодаря низкоуровневому API, доступному для Xbox One. И если раньше такую эффективность можно было достичь только на консолях, то теперь она доступна также на смартфонах и настольных компьютерах — конечно же, благодаря DirectX 12. Это было продемонстрировано на примере вышеупомянутой игры Forza Motorsport 5, которая была портирована на PC в качестве технической демо-версии. К слову, разработчики автосимулятора, компания Turn 10 Studios, уже пытались портировать игру на PC с помощью DirectX 11, однако так и не смогли добиться приемлемого фреймрейта посредством этой версии API.
Помимо высокой производительности, DirectX 12 может похвастаться впечатляющей энергоэффективностью. По данным Microsoft, двенадцатая генерация API потребляет в среднем на 50% меньше энергии, чем ее предшественница. И это наглядно показало проведенное во время конференции SIGGRAPH 2014 тестирование платформы Surface Pro 3, оснащенной графическим процессором Intel HD4400.
Специально для тестов программисты Intel написали демо-приложение Asteroids. В Asteroids на экране одновременно отрисовываются 50 тысяч уникальных астероидов, каждый из которых имеет свою комбинацию вершин, текстур и констант. Приложение запускалось в двух режимах: DirectX 11 и DirectX 12. В первом тестовом прогоне сравнивалась энергоэффективность двух API. Для этого количество кадров в секунду блокировалось, и одна и та же сцена рендерилась сначала под управлением DirectX 11, а затем — DirectX 12. На картинке ниже можно увидеть, что энергопотребление CPU в режиме DirectX 12 уменьшилось наполовину. Отличный результат! И особенно важный для мобильной платформы.
Так выглядит приложение Asteroids. Справа внизу вы можете увидеть графики энергопотребление CPU (синий) и GPU (красный). После переключения в режим DirectX 12 энергопотребление CPU уменьшилось вдвое
Результаты еще одного тестирования с фиксированным фреймрейтом. Результат такой же: при использовании DirectX 12 CPU потребляет примерно на 50% меньше энергии
Во втором тестовом прогоне измерялась производительность двух API. Само собой, количество кадров в секунду уже не фиксировалось. Неудивительно, что DirectX 12 вновь оказался впереди. Средний фреймрейт в режиме DirectX 12 составил 33 FPS против 19 FPS у DirectX 11 — еще немного, и прирост скорости составил бы 50%. Скриншоты и графики энергопотребления смотрите ниже.
Производительность системы в режиме DirectX 11
Производительность системы в режиме DirectX 12. Обратите внимание на график энергопотребления: при переключении в режим DirectX 12 CPU потребляет меньше энергии, что позволяет GPU работать быстрее. При этом энергопотребление всей системы находится в прежних границах
Результаты еще одного тестового прогона без фиксированного фреймрейта. Ранее полученные результаты подтверждаются: при переключении в режим DirectX 12 GPU начинает работать быстрее
В общем и целом, результаты предварительных тестирований DirectX 12 оказались более чем положительными и обнадежили многих пользователей. Высказывались даже предположения, что новый API позволит достичь разрешения 1080p на Xbox One. Но стоит ли доверять столь ранним выводам, тем более сделанным самими разработчиками Microsoft?
С чего все начиналось. DirectX 1.0
История появления DirectX берет свое начало в первой половине 1990-х годов, когда компания Microsoft занималась разработкой операционной системы Windows 95, которая должна была прийти на смену MS-DOS. Главным преимуществом MS-DOS было то, что она пользовалась популярностью у разработчиков игр. По мнению трех программистов Microsoft — Крэйга Эйслера (Craig Eisler), Алекса Сен-Джона (Alex St. John) и Эрика Энгстрома (Erik Engstrom) — даже после выхода Windows 95 многие разработчики могли отдать предпочтение MS-DOS как более подходящей для создания игр платформе. Чем же «дос» так нравился программистам? Все дело в том, что, программируя под MS-DOS, разработчики обращались напрямую к железу, то есть имели прямой доступ к видеокарте, клавиатуре, мыши, звуковым устройствам и другим частям системы. Подобный подход использовался в программировании под консоли, однако создание игр для компьютера осложнялось тем, что, в отличие от приставок, здесь не было фиксированной конфигурации системы. Это приходилось учитывать при написании кода, что значительно усложняло жизнь девелоперам.
Крэйг Эйслер — один из создателей DirectX
Так или иначе, но обращаться напрямую к аппаратной части компьютера в Windows 95 стало невозможно. Причиной этого была новая защищенная модель памяти, которая запретила прямой доступ к устройствам. Шел 1994 год, Windows 95 была на подходе, и Microsoft требовалось быстрое и эффективное решение возникшей проблемы. Им стал API DirectX, за создание которого отвечали как раз Эйслер, Сен-Джон и Энгстром. Релиз DirectX версии 1.0 состоялся 30 сентября 1995 года под названием Windows Games SDK.
Первая итерация DirectX была очень упрощена относительно своих будущих версий. Она поддерживала вывод двухмерной графики, звуков, а также обрабатывала данные, поступающие с различных манипуляторов.
DirectX 1.0 разрабатывался для Windows 95
Разработчики игр встретили DirectX довольно прохладно. Во-первых, они не были уверены, что Microsoft будет поддерживать API на протяжении долгого времени. Недоверие к Microsoft возросло после того, как компания свернула поддержку API WinG, который рассматривался как один из «помощников» в портировании игр с DOS на Windows. Во-вторых, «девяносто пятая» была требовательней к аппаратной части, из-за чего производительность в играх, как правило, снижалась в сравнении с MS-DOS. Ну и в-третьих — у DOS было огромное количество энтузиастов, которые ни в какую не хотели программировать под Windows.
Стоит сказать, что к моменту появления DirectX разработчикам игр уже был доступен API OpenGL, разработанный компанией Silicon Graphics Inc и представленный в 1992 году. Но в Microsoft решили пойти своим путем. В дальнейшем противостояние DirectX и OpenGL было похоже на битву Давида против Голиафа. Microsoft, прежде всего, брала своей финансовой мощью, а Silicon Graphics — репутацией и техническим опытом. Так, выбор в пользу OpenGL тогда сделал создатель Doom и Quake Джон Кармак (John Carmack). Он считал, что программный код DirectX слишком сложный для программирования, и поэтому в открытую поддерживал более «дружелюбный» интерфейс OpenGL. Конечно же, на планы Microsoft это никак не повлияло, но прохладная встреча DirectX со стороны разработчиков ясно дала понять, что работы у инженеров компании целый непочатый край.
Скриншот из игры Doom, за разработку которой отвечал Кармак
Sid Meier’s Civilization VI
А это продолжение культовой стратегии от Сида Мейера. Стоит отметить, что игрушка довольно-таки сложная. Так что тем, кто ранее не играл в другие части франшизы лучше подготовиться. Именно в обновленной версии слишком уж сложные механики.
Но последнее – это плюс. Намеренное усложнение стратегии разработчиком – это оправданный шаг, так как играть еще интереснее. Теперь нужно внимательно просчитывать каждый свой шаг, ибо н будет иметь свои последствия. И если что-то сделать не так, то весь ваш город не продержится и двух дней.
Главное отличие от пятой части заключается в районировании огородов. Теперь управлять ими стало намного проще. К тому же, заметно подрос уровень графики. Хотя ничего эпичного нет и по сей день. Однако выглядит шестая Цивилизация довольно интересно.
Немного расстраивает то, что разработчики решили отказаться от тонкостей политики. Снискать расположение соседей невозможно. И поэтому войны – всего лишь вопрос времени. Никакая политика и культура не спасут от вооруженного противостояния. Так что придется вкладываться в оборону.
В игре есть несколько стран. Среди них Британия, Япония, Норвегия (викинги) и так далее. Этапы развития разделены по эпохам Задача пользователя – добраться до далекого будущего с роботами и синхрофазотронами.
Как ни странно, Civilization VI полностью поддерживает DirectX 12. При этом системные требования у игрушки очень скромные. Она легко запустится даже на компьютерах 10-летней давности. Пусть и без всяких красивостей. В стратегиях главное не это.
- Очередная часть отличной франшизы.
- Мощный искусственный интеллект соперников.
- Усложненные механики игры.
- Существенно улучшенная графика.
- Применяется районирование городов.
- Играть стало еще сложнее.
- Всякое действие будет иметь свои последствия.
- Большое значение культуры.
- Превосходный геймплей.
- Впечатляющая атмосфера.
Недостатки:
- Разработчики забыли о политике в игре.
- Несколько мультяшный визуальный стиль может отпугнуть игрока.
Коротко o DirectX 12
Про основную «фишку» DirectX 12 я написал. Низкоуровневый API снижает уровень абстрагирования оборудования. Подробно про двенадцатую версию детища Microsoft мы уже писали. Не вижу смысла повторяться. Возможности DirectX 12 в «вакууме» наглядно демонстрирует специальный тестовый пакет бенчмарка 3DMark. Согласно результатам, эффективность низкоуровневых API (не забываем про Mantle и Vulkan) выше минимум на порядок. Все очень просто: DirectX 11 накладывает ограничения на количество команд отрисовки центрального процессора. Но будем честны: 3DMark — это всего лишь 3DMark. Цифры красивые, однако с реальностью никак не соотносятся.
Сравнение производительности DirectX 11 и DirectX 12 в 3DMark
Поддержка DirectX 12 | |||
DirectX 12 API | DirectX 12 _ 0 | DirectX 12 _ 1 | |
AMD | Radeon R9 Fiji; | Radeon R9 Fiji; | Radeon R9 Fiji. |
Radeon GCN 1.1/1.2; | Radeon GCN 1.1/1.2. | ||
Radeon HD 7000. | |||
Radeon GCN 1.1/1.2; | Radeon GCN 1.1/1.2. | ||
Radeon HD 7000. | |||
Radeon GCN 1.1/1.2; | |||
Radeon HD 7000. | |||
NVIDIA | GeForce GTX Maxwell 2-го поколения; | GeForce GTX Maxwell 2-го поколения. | GeForce GTX Maxwell 2-го поколения. |
GeForce GTX Maxwell 1-го поколения; | |||
GeForce Kepler; | |||
GeForce Fermi. | |||
GeForce GTX Maxwell 1-го поколения; | |||
GeForce Kepler; | |||
GeForce Fermi. | |||
GeForce GTX Maxwell 1-го поколения; | |||
GeForce Kepler; | |||
GeForce Fermi. |
DirectX 12 работает только с Windows 10. Маркетинг чистой воды, нацелен на увеличение числа пользователей этой ОС. Можно ли этому противостоять? Можно, но только при продвижении другого API. Например, Vulkan.
DirectX 12 работает только в среде Windows 10.
Список игр, поддерживающих DirectX 12, заметно увеличился. В этом материале мы рассмотрим HITMAN, Rise of the Tomb Raider и Ashes of the Singularity. Эти игры поддерживают и DirectX 11, и DirectX 12. Две из них вышли совсем недавно. Ashes of the Singularity все еще находится на стадии beta-тестирования. Эксклюзивно для Windows 10 вышла ремастеринг-версия культовой Gears of War. Совсем скоро появятся игры ААА-класса: Deus Ex: Mankind Divided, Forza Motorsport 6 Apex и Quantum Break. На только что прошедшей выставке GDC представили движок CryEngine V. Отныне все Xbox-эксклюзивы будут выходить в том числе и на ПК. Но только исключительно под Windows 10. Спасибо новой стратегии Microsoft.
Metro: Exodus
Очередная часть культового постапокалиптического экшена, которая единогласно признана лучшей частью франшизы. Данная игрушка обладает превосходным сюжетом и не менее отличной графикой. Но ведь пользователям важен геймплей, а не внешние «красивости» (по крайней мере, некоторым).
По сюжету главный герой, хорошо знакомый поклонникам по предыдущим частям франшизы, пытается найти место в открытом мире, где можно спокойно жить. Именно для этой цели он и выбрался из Московского метрополитена.
Однако в открытом мире очень много угроз. Есть еще зоны с высоким радиационным фоном. Но не это самое страшное. Главная опасность заключается в мутантах и толпах мародеров. От них придется отбиваться. И непонятно еще, кто опаснее.
У игрушки отменная графика. Но при этом наблюдаются некоторые ошибки. К примеру, некоторые монстры тонут в текстурах и все в том же духе. Не сказать, чтобы это была обычная практика разработчиков, но все же немного неприятно.
Тем не менее, играть в Metro: Exodus довольно-таки интересно. В каждой локации нас ждет незабываемое приключение. Перемещение между локациями осуществляется на специальном поезде, в котором собрались все выжившие, желающие жить в открытом мире.
Данная игрушка выглядит современно. Используется огромное количество самых продвинутых технологий. А саундтрек и вовсе потрясающий. Есть даже возможность послушать песни под гитару в исполнении персонажей. Атмосферность прямо зашкаливает.
Metro: Exodus оснащена полной поддержкой DirectX 12. Однако для ее запуска потребуется довольно-таки навороченный компьютер. Но это со всеми современными играми так. Тем не менее, поиграть стоит. Этот экшен обещает крутые впечатления.
- Огромный мир со множеством локаций.
- Интересный сюжет.
- Превосходный геймплей.
- Отличная графика.
- Реалистичная физика.
- Невероятно подробная детализация.
- Прекрасное звуковое сопровождение.
- Использование всех современных технологий.
- Мощный графический движок нового поколения.
- Требуется весьма мощное железо.
- Присутствуют ошибки в игре, баги.
- Далеко не самая лучшая оптимизация.
В роли догоняющего. DirectX 2.0 и далее
Следующее поколение API DirectX было представлено в середине 1996 года. Наконец-то в состав программного интерфейса были включены пакеты Direct3D и DirectPlay. С тех пор API состоял из следующих компонентов:
- DirectDraw. Использовался для отрисовки двухмерной графики.
- Direct3D (D3D). Использовался для отрисовки трехмерной картинки.
- DirectPlay. Представлял собой сетевой программный интерфейс.
- DirectInput. Использовался для обработки данных, поступающих с различных манипуляторов.
- DirectX Media. Представлял собой набор API для работы с мультимедиа.
- DirectMusic. Использовался для проигрывания музыки.
- DirectSound. Использовался для записи и воспроизведения звука.
- DirectSound3D. Предназначен для работы с пространственным звуком.
- DirectX Media Objects. Потоковые объекты, такие как энкодеры, декодеры и эффекты.
- DirectSetup. Отвечал за установку всех компонентов DirectX.
DirectX 2.0 предназначался для операционных систем Windows 95 и Windows NT 4.0. С момента выпуска первой ОС прошло совсем мало времени, поэтому для этой версии было выпущено очень мало игр. Microsoft воспользовалась моментом и начала активно продвигать API среди разработчиков. Ради этого во время конференции GDC в 1996 году Microsoft даже устроила специальное мероприятие, где представила некоторые новые возможности DirectX.
Вскоре после появления второго поколения API свет увидел и DirectX 3.0. Это случилось в сентябре 1996 года. Ближе к концу года были представлены дополнения в виде версий 3.0a и 3.0b. В сравнении со второй итерацией API третье поколения получило лишь незначительные изменения, которые так и не смогли повлиять на положение DirectX среди девелоперов.
Так выглядела картинка с применением DirectX 3.0
Главным достоинством пятой итерации DirectX стал намного упрощенный код. Писать программы с помощью API стало легче, и DirectX уже не вызывал у девелоперов такой неприязни, как поначалу. Главным же недостатком пятой «директрисы» было отсутствие поддержки технологии мультитекстурирования (multitexturing). Суть этой технологии заключается в наложении на грань сразу нескольких текстур за один проход. Но тут Microsoft улыбнулась удача. В то время алгоритмы мультитекстурирования были не столь эффективны, а железо — недостаточно производительным для того, чтобы применять технологию без ущерба для производительности. Чаще всего вместо нее разработчики использовали обычные многократные проходы, во время каждого из которых на грань накладывалась только одна текстура. Для девелоперов было важно, чтобы новые игры запускались и на старых машинах, поэтому в большинстве приложений мультитекстурирование не использовалось. Microsoft от этого лишь выиграла.
В современных реалиях игры с поддержкой DirectX 12 – уже не редкость. Любой уважаемый издатель и разработчик почитает обязательным добавить поддержку этого API в свои творения. И в данном материале мы расскажем о лучших из них.
Читайте также: