Unreal Engine 5 решает самую большую проблему с графикой для ПК | Цифровые тренды


Во время своего Состояние нереального адреса на GDC 2023 Epic анонсировала широкий набор функций для Unreal Engine 5.2. Но, пожалуй, самая важная функция обновленного движка не связана с освещением, детализацией геометрии или трассировкой лучей. Все дело в производительности.

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

Помните заикание

Время кадра в Gotham Knights на ПК.
Эти всплески времени кадра проявляются в виде сильных заиканий в Gotham Knights.

За последние несколько лет Unreal Engine стал синонимом заикания. Мы видели это снова и снова, начиная с Звездные войны Джедаи: Павший Орден к Бродить к Готэмские рыцари, и все они имеют одну и ту же общую проблему. Это заикание при компиляции.

Обычно вы слышите о зависаниях при компиляции шейдеров, но недавние источники сбоев связаны не с отдельными шейдерами. В недавней графике API-интерфейсы, такие как Vulkan и DirectX 12, пакеты, известные как объекты состояния конвейера (PSO), используются для сообщения игре о состоянии вашего графического процессора. PSO предназначены для повышения эффективности рендеринга, позволяя десяткам параметров, включая шейдеры, быть интерфейсом между API и графическим процессором в одном пакете.

Однако они создают другую проблему. Поскольку PSO содержат так много информации, создание нового на лету занимает много времени (согласно к документации Unreal, 100 и более миллисекунд). Это создание PSO во время выполнения является источником заиканий, когда движок должен генерировать новый PSO, пока вы на самом деле играете.

Для борьбы с этим в Unreal Engine доступно кэширование PSO. Это создает кеш возможных PSO, поэтому новые не нужно генерировать во время игры, но они не идеальны. Как поясняет Epic, предварительное кэширование PSO может быть «обременительным для крупных проектов и по-прежнему оставляет пробелы в кеше, что приводит к задержкам». Вот почему даже в играх, которые предварительно компилируют шейдеры на графическом процессоре, вы все равно время от времени будете сталкиваться с заиканиями (даже если их немного и далеко друг от друга).

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

Все для Фортнайт

Сцена из Fortnite, работающей на Unreal Engine 5.

В Unreal Engine 5 есть много чего интересного (я расскажу об этом позже), но у нас пока нет четкого представления о том, как работает этот движок. До сих пор он использовался только в технических демонстрациях и Fortnite среди крупных релизов. Даже такие игры, как Редфолл которые обещали использовать Unreal Engine 5, отказались от Unreal Engine 4.


Чтобы было ясно, инструменты, доступные в Unreal Engine 4, позволяют разработчикам оптимизировать свои игры, чтобы избежать заиканий. Атомное сердце является одним из многих примеров этого. Но сложное состояние PSO оставляет дверь открытой для заминок во время игрового процесса, а автоматический сбор PSO от Epic был представлен только в Unreal Engine 5.1.

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


Это особенно касается игр, включающих трассировку лучей, поскольку Unreal Engine 5 не поддерживает кэширование PSO для PSO с трассировкой лучей. Как Nvidia объясняетможно распределить работу по созданию PSO с трассировкой лучей на несколько потоков, но это не обязательно означает, что разработчики будут использовать этот процесс.

Еще много поводов для радости

Освещение в Unreal Engine 5.

Нам все еще нужно увидеть автоматический сбор PSO в Unreal Engine 5, но на самом деле в движке есть куча поводов для радости. В первую очередь Люмен. Освещение чрезвычайно важно для графической точности, и дорогостоящие методы, такие как освещение с трассировкой пути, продемонстрированные в Портал RTX жестко относятся к оборудованию. Люмен делит разницу.

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

Результаты уже очевидны. Fortnite работает на консолях с Lumen со скоростью 60 кадров в секунду (fps) и выглядит потрясающе на ПК даже в Fortnite’мультяшный мир.

Демонстрация нанитов в Unreal Engine 5.

Nanite работает в паре с Lumen. Это виртуализированная система геометрии, которая содержит детализированные, сильно сжатые сетки, которые можно корректировать во время игры. По сути, это сложный уровень детализации (LOD) для мешей, который автоматически переключается между подробными и расплывчатыми мешами в зависимости от того, куда смотрит камера.

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

Тем не менее, Epic поделилась больше во время своего выступления State of Unreal. Substrate — это новая система материалов в Unreal 5.2, которая включает в себя более детальное управление шейдерами. Epic продемонстрировала это с помощью материала опаловой поверхности, продемонстрировав несколько слоев и точное преломление света в них.

Опаловый материал в Unreal Engine 5.

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

Есть еще много всего, от достижений в MetaHuman до полной трассировки пути в Unreal Engine. Это интересно, но проблемы с заиканием, обычно связанные с выпусками Unreal Engine, остаются. Будем надеяться, что достижения Epic в кэшировании PSO помогут обойти эту проблему, но у нас пока не так много игр на Unreal Engine 5, чтобы увидеть, как работает эта система.

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

Рекомендации редакции






Нажмите здесь, чтобы узнать больше новостей


Leave a Comment

Your email address will not be published.