Игры под directx 12

DirectX 12 в 2019 году

Игры под directx 12

DirectX 12 вышел еще 29 июля 2015 года вместе с Windows 10, при этом по заявлениям Microsoft данный API разрабатывался около 5 лет.

Новый API сильно отличается от DirectX 11, и позволяет практически равномерно распределять нагрузку процессора по всем ядрам, а не держать почти все дроуколы на одном ядре.

Сам по себе API — это программная прослойка между железом компьютера и операционной системой, на которой вы запускаете игры и различные программы. DirectX 12 имеет низкоуровневый доступ, что дает возможность получить полный доступ к аппаратным ресурсам. Что-то похожее уже давно имеется на консолях.

AMD делала похожий API под названием Mantle, но с его API вышло мало игр, и разработка загнулась.

Еще есть кроссплатформенный Vulkan, но видно, что ему не хватает поддержки от разработчиков, в отличие от того же DirectX, и как 3 года существует уже его 12-я по-своему революционная версия.

Многие игры, которые используют DX12 не показывают чудес в производительности, так как чтобы воспользоваться DX12 по максиму нужно изначально разрабатывать эту игру опираясь на API DirectX 12, а не докручивать его непонятным образом во время разработки или вообще после релиза.

Хотя и нужно отметить, что с каждым годом эти показатели все лучше и лучше. Тот же недавний Battlefield 5 показывает местами прирост производительности до 70 кадров, правда такие отличия вы найдете, если не будет упора в видеокарту.

Видно, что спустя время допилили как саму поддержку DX12 так и сам движок Frostbite, и кто чтобы что про него не говорил и не снимал 50-минутные разоблачающие видео, но он показывает до сих пор выдающиеся результаты.

Оптимизация идет процессорной нагрузки, что и обещала Microsoft. Похожая ситуация и с другими играми.

Когда только презентовали DX12, а это было в 2014 году, то нам рассказывали просто невероятные вещи, а именно то, что приложения, которые будут использовать DX12, смогут в 2-3 раза быстрее работать, нежели приложения с DX11.

С выходом Windows 10 вышел и новый API DX12, который можно было протестировать в бенчмарке 3D Mark и производительность была двукратная, в два раза больше вызовов отрисовки по сравнению с DX11, даже на картах лишь с программной поддержкой.

Многие начали думать, что теперь их старенькие 2-х ядерными монстры просто смогут вывозить новенькие игры, даже оптимизацию карты до 30% обещали завести, но что-то не срослось. Уже прошло больше 3-х лет, а игр с поддержкой DX12 довольно-таки мало, ну по сравнению с DX11 это уж точно.

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

Если вы помните, то DX11 вышел в 2009 году, а активно данный API начали использовать примерно в 2015 году, когда практически все игры начали выходить с нативной поддержкой DirectX 11, а не с двумя API DX9 и DX11, как это было долгое время. А DirectX 9 до сих пор иногда используется, хотя данному API уже больше 17 лет, но не суть, мы говорим про новые крупные проекты.

Чтобы выпускать все игры с поддержкой DX12 нужно, чтобы большинство пользователей перешли на видеокарты с DX12, а на это понадобиться минимум еще года 3, а в лучшем случае лет 5.

Хотя и нужно отметить, что старые карты поддерживают DX12, но они его поддерживают лишь программно и лишь некоторые библиотеки, а значит для полноценной поддержки понадобиться видеокарта с полноценной аппаратной поддержкой DX12.

Во-вторых, полностью на DX12 мы перейдем, когда прекратиться поддержка также и оригинального Xbox One, который на рынке уже больше 5 лет и оборудование там мягко говоря устарело и также там имеется только программная, т.е.

неполноценная поддержка DX12, а значит пока будут разрабатываться игры под оригинальный Xbox One, то ждать DX12 в массы не стоит, а его списывание произойдет примерно через года 2-3, тем более что на его замену уже вышел Xbox One X с аппаратной поддержкой DX12.

Поэтому нужно минимум дождаться окончания поддержки оригинального Xbox One, а это наверно произойдет не скоро.

Еще стоит отметить, что API DirectX 12 обновляется каждый год.

К примеру, вы знали, что данный API поддерживает унифицированную шейдерную модель 6-й версии? Не знали? Так вот, поддержка есть, но на уровне драйверов их до сих пор нет, хотя она появилось примерно 2 года назад в юбилейном обновлении Windows 10.

Также в DirectX интегрирован физический движок Havok, да, Microsoft его довольно давно выкупила и при разработке игр на DX12 разработчики могут бесплатно его использовать. Данный компонент имеет название Direct Physics.

Разработчики жаловались, что очень сложно заставить карты разных производителей работать вместе.

И тут же Microsoft выпустила упрощенный инструментарий для внедрения данной поддержки, из-за чего естественно будет теряться производительность, но это так никто и не реализовал, хотя и стоит отметить, что была и серьезная реализация с использованием разных карт, к примеру, в игре Ashes of the Singularity.

И вот совсем недавно вышло обновление для Windows 10 под названием October 2018 Update и помимо обновления системы произошло обновление API DirectX 12, в котором появилась поддержка на уровне API технологии трассировки лучей – DirectX Ray Tracing (DXR).

Многие ошибочно полагают, что это технология NVIDIA, но нет. NVIDIA лишь дает аппаратное ускорение для трассировки, вот и все. Microsoft просто стандартизировала Рей Трэйсинг, так как по факту этой технологии уже не один десяток лет.

По идее, уже должен был выйти API DirectX 13, но майки просто обновляют имеющийся DirectX, что также не очень хорошо, так как постоянно его стандарт меняется.

Кстати, на консолях нового поколения AMD обещает также запилить аналогичные RT-ядра для аппаратного ускорения, но изменения от этой технологии будут не большие, как и сейчас при Рей Трейсинге, но они будут.

Если говорить про 2019 год, то DirectX 12 снова обновится, неожиданно, правда? Привыкайте, что каждый год будет обновляться данный API, при этом некоторые изменения требуются на аппаратном уровне железа.

С весенним обновлением 19H1 ожидается, что Microsoft внедрит новый компонент в DirectX под названием DirectML. Данный компонент, думаю понятно из названия, будет отвечать за машинное обучение и искусственный интеллект.

Для его работы потребуются тензорные RT-ядра, хотя скорее всего и обычные CUDA-ядра сгодятся, просто вычисления будут гораздо медленнее идти. Но, с другой стороны, в том же 5-й Battlefield если нет поддержки трассировки на аппаратном уровне, то и меню выбора DXR также нет, это нужно учитывать.

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

На закрытой демонстрации показывали многократное повышение разрешения с FullHD до 4K при помощи машинного обучения, при этом от увеличения разрешения нагрузка на карту не росла, по крайней мере разработчики из Microsoft так говорят.

Из той презентации единственное что есть, это демонстрация этого масштабирования при помощи того самого машинного обучения.

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

Теперь про игры. Также не маловажным фактом послужит то, что если изначально игра будет разрабатываться под DX12, то только тогда можно говорить об отличном распараллеливании ресурсов и о хорошем FPS. Хотя во многом тут зависит и от лени программистов.

Ну и также не стоит забывать, что с каждым годом уровень детализации в играх растет, даже если освободятся ресурсы, то разработчики найдут их применение, например увеличат дальность прорисовки или тот же FPS, если не будет все упираться в видеокарту, если мы говорим про консоль, хотя и ПК тут также можно привести в пример.

В общем, полноценно DX12 еще появится не скоро, но может быть я ошибаюсь. Уже даже есть неплохие примеры. К примеру, тот же Battlefield 5 при использовании DX12 имеет прирост в 30 кадров в секунду, а в некоторых моментах и 70 кадров, как я и отмечал ранее, правда, при этом настройки графики средне-низкие.

Также не нужно забывать и про альтернативу, например API Vulkan, судьба которого еще не известна. У Microsoft есть ресурсы на поддержание DX12, есть игры и монополия в ПК-сегменте. Даже если игры разрабатываются параллельно, то упор идет на DX, если мы говорим платформы Microsoft – Xbox и PC.

AMD очень активно занимается продвижением Вулкана, правда с их картами серии RX задача намного усложняется и скорее всего все закончится печально как и с Mantle, но кто знает, может я опять ошибаюсь. Vulkan – очень перспективный API, одна его кроссплатформенность чего стоит, но если посмотреть на игры с поддержкой Vulkan, то как-то все не очень радужно.

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

3D-программист из Ubisoft Тьяго Родригез рассказывал на мероприятии GDC 2017, что пока добиться производительности уровня DX11 с применением API DX12 очень сложно, не говоря уже про увеличение этой самой производительности. Хотя, глядя на текущие игры Ubisoft не особо понимаешь, о какой производительности там идет речь. Но тем не менее, программист похвалил новый API за счет Async Compute, они же асинхронные шейдеры.

Nixxes Software, которые занимаются портированием ПК-игр Square Enix заявляет, что из-за DX12 требуется больше усилий, но оно того стоит.

Разработчики из The Coalition, которые занимаются игровой серией Gears of War заявляют, что благодаря переходу на DX12 в Xbox One удалось освободить некоторые ресурсы, а также появились ресурсы для поддержки HDR и масштабирования до 4K.

Кстати, если кому интересно, то первой игрой с поддержкой API DX12 считается игра Star Wars Battlefront 2015 года для Xbox One. Изменений там видно было не много, так как игра работала в 720p + в основном там была программная поддержка.

Насчет программной и аппаратной поддержки. Понимаете, на уровне железа должна быть поддержка нового API, чтобы игра банально работала. К примеру, если у вас нет видеокарты с аппаратной поддержкой DX12, то выбора данного API и не будет даже в самой игре.

В принципе, можно через эмулятор DirectX попробовать запустить игру на DX11-12 на карте с DX9-10, но многих текстур и эффектов вы не будете наблюдать. Кстати, интересная программа, надо бы как-то про нее написать статью.

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

Хоть Microsoft и говорила, что старые карты будут поддерживать DX12, но по факту только Microsoft в своих релизах делает такую поддержку, сторонние разработчики требуют нативную поддержку DX12. Не зря же Microsoft представила 3 варианта поддержки DX12 – с ума сойти.

Если коснуться конкретнее уровней поддержки DirectX 12, то DirectX 12 API – данный уровень поддерживается всеми видеокартами как с нативной поддержкой DX11, так и с DX12. Суть его заключается в основном в равномерном и более продуктивном использовании ядер процессора.

DirectX 12_0 – данную версию API поддерживают все современные видеокарты NVIDIA и AMD. Суть ее заключается в использовании тайловых текстур, которые позволяет хранить текстуру не целиком, а лишь ее часть, после чего, ее можно будет многократно продублировать на экране. Благодаря этому размер самой текстуры уменьшается в разы, но при этом скорость рендеринга очень сильно увеличивается.

DirectX 12_1 – данную версию поддерживает пока что только видеокарты NVIDIA начиная с Maxwell 2-го поколения.

Здесь главное новшество – использование консервативной растеризации, которая используется в технологии динамического суперразрешения. Естественно, я здесь все сказал, обобщенно.

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

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

Да, идет оптимизация потоков, но из-за упора в видеокарту все сходит на нет, поэтому многие разработчики пока не видят сильного желания разрабатывать игры под новый API, хотя с каждым годом игр с поддержкой DX12 становится все больше и больше, и когда-то произойдет тоже самое, что и с DX11 – будут разрабатывать игры и приложения только под него, но из-за постоянно меняющихся спецификаций DX12 трудно сказать, когда это действительно произойдет.

Источник: MSReview

Источник: https://zen.yandex.ru/media/id/5c1bd6083c8d5800a900bdfe/directx-12-v-2019-godu-5c3dc6dbe9811200ae0c1369

Microsoft представляет DirectX 12 Ultimate: новый стандарт для современных игр с поддержкой GeForce RTX

Игры под directx 12

В выпущенных в 2018 году видеокартах GeForce RTX были впервые реализованы многие технологии: аппаратно ускоренная трассировка лучей, Variable Rate Shading, Mesh Shading и другие.

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

Теперь Microsoft анонсировала новый графический API DirectX 12 Ultimate, который закрепляет инновационные технологии Turing как стандарт для мультиплатформенных игр нового поколения.

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

Это упрощает и ускоряет разработку игр, а также позволяет разработчикам чаще добавлять инновационные технологии в игры.

Многие разработчики уже выпустили проекты нового поколения с этими технологиями: на данный момент  анонсировано и выпущено более 30 игр с DirectX Ray Tracing, а с выпуском DirectX 12 Ultimate их количество значительно вырастет.

Только на GeForce RTX, первой и единственной платформе, поддерживающей инновационные технологии на ПК, геймеры получат максимум возможностей в графически насыщенных играх сейчас и в будущем.

– Marcus Wassmer, Director of Engineering, Graphics, Epic Games

Центральная технология DirectX 12 Ultimate — это трассировка лучей, которая моделирует траекторию распространения света в сцене, создавая реалистичные освещения, тени и отражения, возможные прежде только в блокбастерах.

Благодаря изобретенному NVIDIA программно-аппаратному обеспечению мы помогли реализовать трассировку лучей в Battlefield V, Call of Duty: Modern Warfare, Control, Метро: Исход, Shadow of the Tomb Raider и других играх.

В ближайшем будущем мы планируем добавить поддержку трассировки лучей в самые ожидаемые блокбастеры: Minecraft, Cyberpunk 2077, Vampire: The Masquerade – Bloodlines 2, Watch Dogs: Legion, и это только некоторые из них.

С появлением трассировки лучей в DirectX 12 Ultimate во всех основных игровых движках и современных консолях, массовое появление трассировки лучей в мультиплатформенных играх должно начаться уже в конце этого года. И лучше всего она будет выглядеть и работать на видеокартах GeForce RTX благодаря специализированным ядрам RT для аппаратного ускорения трассировки лучей, и повышающей производительность технологии DLSS.

Variable Rate Shading (VRS) повышает производительность, позволяя отрисовывать разные участки сцены с разным уровнем качества.

В Wolfenstein: Youngblood на API Vulkan технология NVIDIA Adaptive Shading (вариант VRS) повысила производительность в среднем на 15% без заметной потери качества изображения.

Благодаря поддержке Variable Rate Shading в DirectX 12 Ultimate все разработчики могут легко добавить полезную технологию в игры.

– Chris Larson – COO, Hi-Rez Studios and GM/EP of Rogue Company

На картинке ниже можно увидеть, как VRS отрисовывает участки изображения с разной детализацией.

Цветной оверлей справа показывает возможные варианты для кадра: автомобиль, небо и листва прорисовываются полностью (синим цветом) со всеми мелкими деталями.

В области рядом с автомобилем затеняется один пиксель из четырех (зеленым), а для дороги вдалеке слева и справа — один пиксель из восьми (желтым).

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

Подробнее узнать об этой высокопроизводительной технологии можно в нашей статье о Variable Rate Shading и NVIDIA Adaptive Shading.

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

Большое число вызовов отрисовки объектов перегружает процессор, который в свою очередь может ограничивать производительность графического процессора.

Технология Mesh Shading позволяет разработчикам решить эту проблему, а также повысить качество графики и производительность благодаря новым методам рендеринга, которые помогут создавать миры с огромным числом объектов и полигонов в кадре.

Чтобы наглядно показать работу технологии, мы сделали демо «Астероиды», в котором Mesh шейдеры отрисовывают и динамически корректируют уровни детализации 350 000 астероидов с таким уровнем производительности, который невозможно достичь иным способом.

Посмотреть демо можно здесь

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

Подробнее о механизме работы Mesh Shading можно прочитать в статье о технологиях и архитектуре Turing.

Sampler Feedback работает по тому же принципу, что и Variable Rate Shading: интеллектуально снижает нагрузку на GPU и повышает производительность. Технология обеспечивается Texture Space Shading, аппаратной возможностью архитектуры Turing.

– Koen Deetman, CEO & Game Director, KeokeN Interactive

Почти все современные игры отрисовывают новые кадры с нуля, не используя сделанные раннее вычисления (за исключением временного сглаживания, NVIDIA DLSS и некоторых технологии постобработки).

Но в большинстве игр, как и в реальной жизни, изображение не слишком изменяется между кадрами. Если вы посмотрите в окно, то можете увидеть колышущиеся на ветру деревья, идущих людей или летящих вдалеке птиц.

Но большая часть картинки остаётся неизменной. В основном меняется только угол обзора.

Когда вы посмотрите под другим углом, некоторые предметы действительно будут выглядеть иначе, особенно глянцевые или блестящие.

Но большинство из них изменится незначительно, и поэтому ценные ресурсы GPU будут напрасно тратиться на пересчет тех же самых цветов для объектов, которые есть в каждом кадре и освещение которых не меняется.

Представьте, например, деревянный телефонный столб — независимо от положения головы и угла обзора, он выглядит практически одинаково.

Sampler Feedback позволяет затенять текстуры объектов вместо традиционных пикселей экрана.

Текстуры можно затенять реже, например, в каждом третьем кадре, также можно повторно использовать результат затенения в новых кадрах, если освещение не меняется.

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

Подробный обзор технологии можно найти здесь.

Мы рады, что технологии, эффекты и функции, разработанные и впервые реализованные инженерами и разработчиками NVIDIA, появятся в API DirectX 12 Ultimate, который позволит легко и просто добавлять эти передовые технологии в игры.

– Anton Yudintsev, CEO, Gaijin Entertainment

Вы уже могли оценить возможности и потенциал трассировки лучей в блокбастерах, а также преимущества Variable Rate Shading в Wolfenstein. Теперь вы можете рассчитывать на более высокий уровень детализации с Mesh Shading и ускорение с Sampler Feedback.

Все эти возможности сейчас поддерживаются только GeForce RTX. Поэтому если у вас есть видеокарта или ноутбук на ее базе, вы готовы ко всем предстоящим играм с API DirectX 12 Ultimate.

Добавьте GeForce.com в закладки и следите за информацией о новых игровых технологиях, видеокартах, игровых возможностях и улучшениях GPU NVIDIA.

Источник: https://www.nvidia.com/ru-ru/geforce/news/geforce-rtx-ready-for-directx-12-ultimate/

Поделиться:
Нет комментариев

    Добавить комментарий

    Ваш e-mail не будет опубликован. Все поля обязательны для заполнения.