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

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

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

Содержание

  • Помните заикание
  • Все для Фортнайт
  • Еще много поводов для радости

Рекомендуемые видео

Нереальный движок игры, правильно или неправильно, в последние несколько лет ассоциировались с заиканием и заминками. С новым релизом 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 — постоянная двухнедельная колонка, включающая обсуждения, советы и подробные отчеты о технологиях, лежащих в основе компьютерных игр.

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

  • Я пытался пережить забытое наследие Halo в виде франшизы для Mac — и это была катастрофа.
  • При эксклюзивном партнерстве с ПК проигрывают все
  • Худшие порты для ПК всех времен — и почему они были такими плохими
  • Как генеративный ИИ будет создавать игры с «более широкими, большими и глубокими мирами»
  • Star Wars Jedi: Survivor подвергается критике в Steam как «полный дерьмовый» порт для ПК