Графика ближайшего десятилетия. Анализ Unreal Engine 5.1 в Fortnite

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

4 декабря 2022 года к Fortnite вышло глобальное обновление «Глава 4», которое перевело игру на новый движок Unreal Engine 5.1. Вместе с ним появились новые технологии — Nanite, Lumen, виртуализированные карты теней и TSR. О них мы уже говорили раньше, но сейчас впервые можем взглянуть на то, как они меняют уже существующую игру, показывая, что мы можем ожидать от игр в в будущем.

Переход на Unreal Engine 5.1 знаменует значительный скачок в технологиях для Fortnite. Да, в предыдущих версиях была поддержка DirectX 12, RTX-отражений, DLSS и других современных технологий, но работали они достаточно медленно, и даже обладатели мощных компьютеров не всегда включали «красивости».



В «Главе 4» все изменилось. Теперь у большинства современных компьютеров DirectX 12 автоматически включается как основной графический API, а вместе с ним приходят функции, о которых не только Epic Games, но и вся игровая индустрия говорила годами — виртуализация моделей и теней и трассировка лучей. Более того, технологии Unreal Engine 5.1 отлично работают и на игровых консолях текущего поколения — причем все красивости воспроизводятся в 60 fps.

Виртуализированная геометрия Nanite



Обычно игры используют высокодетализированную модель (LOD0), когда во всей красе объекты или персонажи предстают только близко к экрану (виртуальной камере), а для бОльших дистанций менее детализированные модели с упрощенной геометрией — LOD1, LOD2, LOD3 и т.д. Это проявляется в эффекте, который видел почти каждый: когда вы подходите ближе и модель неожиданным рывком меняется на более детальную. Конечно, разработчики стараются максимально прятать эти переходы и убирать их подальше от игрока, но это не всегда возможно. Дополнительно используют трюки вроде карт нормалей и bump mapping’а, которые добавляют видимость глубины, скажем, кирпичной стены, хотя на самом деле движок рендерит совершенно ровную поверхность. Под определенными углами и вблизи иллюзия рушится, но обычно работает неплохо.



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



Однако Fortnite — это уже существующая игра, которая использовала LOD’ы и карты нормалей. Разработчики могли бы оставить все как есть и просто щелкнуть галочками в движке, но нет — Epic Games заморочилась и переделала большую часть моделей в детализированные. Каждая стена теперь реально состоит из смоделированных кирпичкиков, каждый камушек не нарисован, а есть в игре, каждый цветочек — это отдельная модель.

В официальном блоге Epic Games пишет, что деревья сейчас состоят из 300 тысяч полигонов каждое. Для сравнения, самые детализированные модели главных героев игр прошлого поколения были в районе 150 тысяч полигонов, редко превышая 200 тысяч. А в Fortnite их затыкают за пояс деревья. Конечно, даже если всматриваться, вы не всегда будете видеть максимально детализированную версию, потому что ограничения на оперативную память и процессор все еще существуют, как и производительность видеокарты.



В Fortnite все еще есть всплывающие модели и текстуры — опять же, из-за ограничений современного железа, но теперь игра использует одну большую модель для исключительно дальних объектов, которая тоже использует Nanite для более плавного и незаметного перехода.

До некоторых моделей разработчики явно не добрались. Восьмиугольные колеса напоминают олдам об Enter the Matrix на ПК

Виртуализированные карты теней





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

Конечно, это тоже не волшебство. На консолях в тенях есть достаточно заметные шумы, а на Xbox Series S мелкие объекты исключены из виртуальной карты теней, но вряд ли кто-то сильно расстроится, если трава останется без теней.

Глобальное освещение Lumen





Но самый заметный и важный элемент — это система Lumen, свой уникальный подход Epic Games к трассировке лучей. Главный эффект от Lumen — динамическое непрямое рассеянное освещение, которое заменяет глобальное освещение в экранном пространстве (SSGI) и затенение фонового освещения (ambient occlusion) за их ненадобностью. Игры отлично справляются с прямым освещением, когда есть источник света, он куда-то светит с какой-то яркостью — в итоге получаются цвет и тени. Однако это не то, как свет работает в жизни. В реальности он отражается, перенимает параметры среды, через которую проходит, или от которой отражается. Мы уже видели подобное на ПК и консолях в Metro Exodus: Enhanced Edition, но Lumen умудряется работать в 60 FPS на Xbox Series X и PlayStation 5 в программном режиме и на ПК с аппаратным ускорением.



Глобальное освещение можно достаточно легко сымитировать, если есть много времени и инженеров в игре с абсолютно статичными моделями, как это делают в играх типа The Last of Us. Так грязные станции метро в Max Payne все еще неплохо выглядят 21 год спустя. В Fortnite такие фокусы не пройдут. Мало того, что на протяжении всего матча меняется время суток, так еще и все объекты в игре, включая стены, полностью разрушаемы, а игроки могут и настроить своих построек. Запекать освещение в такой динамичной игре бесполезно.



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



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



По словам Epic, движок трассирует 1/16 луча на пиксель. Это обеспечивает высокую производительность, но требует хороший алгоритм подавления шума. Мы никакого явного шума в тенях и отраженном свете не заметили, поэтому с задачей UE 5.1 справляется отлично.



Отражения





Коронный трюк трассировки лучей — физически корректные отражения. Движок трассирует не в настоящую геометрию уровня, а в модели Lumen самого низкого качества. На Xbox Series S Lumen отражает только статичную геометрию, без персонажей, автомобилей и т.д. (для них все еще используются обычные отражения в экранном пространстве), на ПК, XSX и PS5 — отражаются в том числе и персонажи, но без шейдинга и полноценной информации о свете. Для иллюзии цельного мира этого вполне хватает.



Temporal Super Resolution (TSR)



TSR — это аналог FSR 2.0 и DLSS (без использования машинного обучения), но встроенный в Unreal Engine 5. Этот алгоритм очень неплохо реконструирует изображение в низком разрешении в высокое, и работает во всех версия Fortnite — на ПК, консолях, Nintendo Switch и, наверняка, мобильных телефонах, но разработчики пока это не подтвердили. Он полностью заменяет TAAU из Unreal Engine 4.

По словам вице-президента Epic Games по инжинирингу Николаса Пенуордена, в первой игре на Unreal Engine — демо The Matrix Awakens — апскейлинг 1080p в 4К занимал 3,1 мс, а в четверой главе Fortnite — уже около 1,5 мс. Это стало возможно благодаря новому процессу эвристического отклонения информации предыдущих кадров, которое помогает сохранять высокочастотные детали, полупрозрачными объектами и спецэффектами.



Я не играю в Fortnite, зачем мне вся эта информация?





В ближайшие годы Unreal Engine 5 скорее всего станет самым популярным движком в игровой индустрии. Даже компании, которые делали свои собственные движки, вроде CD Projekt RED и Crystal Dynamics заявили, что следующие части «Ведьмака» и Tomb Raider разрабатывают на UE5, не говоря уж про Senua's Saga: Hellblade II, S.T.A.L.K.E.R. 2: Heart of Chornobyl, Kingdom Hearts IV, Tekken 8, шутера по «Звездным Войнам» от Respawn и даже, возможно Star Wars Jedi: Survivor. Эти технологии и их будущие интерпретации позволяет создавать более реалистичные и красивые игры, потому что реалистичный свет помогает даже мультяшному стилю Fortnite выглядеть лучше, практически как CGI-мультфильм. Благодаря Lumen (и любому другому RTGI) и виртуализированным теням разработчики смогут делать красивые игры быстрее, потому что им не придется ждать, пока отрендерится «реалистичное освещение» и не придется его переделывать каждый раз, когда кто-то что-то передвинул.



У этих версий Fortnite и Unreal Engine 5 все еще есть проблемы. В первую очередь, компиляция шейдеров на ПК, которая делает игры вроде недавней The Callisto Protocol практически неиграбельными. Динамическая компиляция все еще встречается в ПК-версии четвертой главы Fortnite, но вице-президент Epic Games по инжинирингу Николас Пенуорден заверил Digital Foundry, что это происходит из-за не до конца обновленной игры и с будущими обновлениями эта проблема уйдет совсем.

Интересно, что новые графические функции работают на пользу графическому стилю игры. Fortnite начинает выглядеть не как «красивая мультяшная игра», а как полноценный дорогой CGI-мультфильм. Цвета выглядят ярче и сочнее, контраст выше, причем не просто соотношение ярких и темных участков, а микроконтраст, который создает дополнительные детали, которые появились в мире игры благодаря Nanite и красиво освещены благодаря Lumen. Не стоит перекладывать все улучшения исключительно на технологии. Никакое освещение не сделает плохой арт хорошим. Epic Games явно потратила безумное количество человекочасов на это обновление, и как раз этот результат — пересечение технологии и труда людей — и виден в четвертой главе Fortnite.

В череде RT-обновлений игр, Fortnite: Глава 4 радует в первую очередь гигантским потенциалом, который открывает Unreal Engine 5 для игр будущего. Даже в статичных играх реалистичное глобальное освещение, тени и отражения помогают создать более глубокое погружение в мир и историю или реалистичные арены для мультиплеерных матчей. А в динамических играх, основанных на физике, создании и разрушении, эти технологии позволяют сделать графику почти такую же хорошую, как если бы все модели были намертво «приклеены» к миру игры. А еще они уменьшают нагрузку на разработчиков, которым не нужна армия сотрудников, чтобы рендерить все карты теней, отражений и всего остального. Ждем новых игр на Unreal Engine 5.

Обсудить