Графика, какую вы еще не видели: разбор улучшенной версии «Метро: Исход»
Обновление, которое радикально улучшает картинку и повышает производительность? В 4A Games доказали — чудеса возможны
Два года назад вышла игра «Метро: Исход», которая подняла планку графики на совершенно новый уровень, впервые внедрив глобальное освещение и затенение фонового освещения при помощи технологии трассировки лучей NVIDIA RTX. С тех сменились и поколение видеокарт, и поколение консолей — PlayStation 5 и Xbox Series теперь тоже работают с трассировкой лучей. В ответ в 4A Games явно решили доказать, что самый навороченный RTX — все еще на ПК. И выпустили обновленную версию «Исхода», под завязку напичканную передовыми графическими технологиями. «Улучшенное издание» бесплатно положено всем обладателям оригинальной игры — но учитывайте, что запустить его получится только на новейших видеокартах NVIDIA и AMD с аппаратной поддержкой трассировки лучей.
Чтобы понять, что такого важного и нового в «Улучшенном издании», надо разобраться в том, как работала оригинальная версия игры. В ней было два RTX-эффекта — глобальное освещение с одним отражением и затенение фонового освещения. Первый работал только от света солнца и луны, рассчитывая не только их падение на поверхность, но и первое отражение от нее. Один этот эффект в корне меняет всю картинку — например, когда луч света попадает на цветную поверхность, то он окрашивает все вокруг ее цветом. В свою очередь, затенение фонового освещения создает реалистичную глубину в тех сценах, где глобальное освещение не работает.
Оригинальная версия «Исхода» была очень красивой игрой, но во многих локациях слишком темной, потому что одного отражения часто не хватает, чтобы реалистично осветить помещение. Даже под ярким солнцем затененные участки очень быстро уходили в полную темноту, что в реальности практически не случается. Реальность, однако, не рендерится в реальном времени на потребительской видеокарте (скорее всего: редакция не несет ответственность в случае того, если мы все живем в чьей-нибудь симуляции). Если первичное попадание лучей на поверхность рассчитать очень просто, примерно так работает вся компьютерная графика, то для расчета даже первого отражения лучей в 2018 году нужны были самые современные и мощные видеокарты.
Однако в «Улучшенном издании» отражения лучей считаются почти как в реальности — бесконечно. Для этого 4A Games использует кэширование — результаты отражений записываются в буфере, где данные накапливаются до достижения реалистичного глобального освещения. Очень похожий метод в прошлом году продемонстрировала Epic Games в движке Unreal Engine 5. Что интересно, этот метод глобального освещения появится и в версиях игры для Xbox Series X и PS5.
Полностью динамическое глобальное освещение с бесконечным количеством отражений: одного солнечного луча хватает, чтобы осветить светлую комнату. Однако такая картинка может выглядеть менее эстетичной из-за неверной экспозиции — на изображении нет чистого черного цвета, но есть засветы от яркого солнца. Это можно исправить простым патчем
Глобальное освещение с бесконечными отражениями создает совершенно другую картинку, гораздо более реалистичную, правдоподобную, наполненную новыми уникальными деталями, взаимодействиями света и цвета, которые раньше были невозможны. Глобальное освещение теперь работает со всеми источниками света, поэтому даже луч фонарика Артема, если он попадет на цветную поверхность, будет освещать окружающее пространство этим цветом. Это мелочь, но мозг подсознательно замечает такие детали и отмечает, что изображение выглядит правдоподобнее.
Единственный минус такого подхода — глобальное освещение реагирует на резкие смены источника света ощутимо медленно, пока буфер получит и накопит новую информацию. Честно говоря, это очень небольшая цена за такой скачок в компьютерной графике.
Глобальное освещение в оригинальной игре учитывало только солнце и луну. На первом кадре машинист освещен только отражением солнца от оранжевой панели, на втором учитывается еще и теплая настольная лампа в правом углу кадра
Однако глобальное освещение, судя по всему, переиграло тонировщик игры — в ней теперь стало очень много засветов. Кино специально освещают и красят так, чтобы картинка была максимально естественная — в том числе, чтобы нигде не было засветов, поэтому она зачастую темнее, чем выпуски новостей или реклама. Оригинальная версия Metro Exodus тоже отлично справлялась с этой задачей, но в улучшенном издании изображение зачастую стало слишком ярким с множеством неестественных засветов там, где их раньше не было. Опять же, ничто не мешает более аккуратно настроить картинку в патчах.
Бесконечный свет
Другая интересная фишка «Улучшенного издания» — все эмиссионные текстуры стали мягкими источниками света. В обычных играх эмиссионные текстуры — это текстуры, которые не меняют свои цвет и яркость вне зависимости от освещения, но к ним не прикреплен источник света. Например, лампы на костюмах главных героев или мониторы компьютеров. Они выглядят так, будто светятся, но на деле редко освещают окружение и никогда не заставляют объекты отбрасывать тени.
В «Улучшенном издании» изменили не только движок, но и художественную часть. От леса идет утренний туман, который освещают лучи солнца, дальние горы тоже закрывает дымка, создавая воздушную перспективу, а полковник Мельник освещен дополнительными отражениями. Улучшилось и тонирование HDR — небо засвечено гораздо фотореалистичнее
Мягкий свет — очень важная часть кинематографичного освещения. Когда источник света большой, фотоны из него идут во всех направлениях, обволакивая освещенный объект и создавая очень мягкие тени. Мягкий свет сглаживает микроконтраст и убирает тени, например, от пор кожи, что делает лица более красивыми. В играх появление мягких источников света дает две вещи — настоящие мягкие тени и реалистичное освещение на персонажах, которые раньше страдали от упрощенных и слишком плоских моделей. В «Улучшенном издании» такой проблемы нет.
Лифт освещает только три лампы на потолке. Остальное — отражения от оранжевых панелей и одежды и самозатенение. Оригинальная игра показывает недостатки оригинальной системы освещения, которая делала изображение нереалистично темным
Эмиссионные текстуры важны еще и потому, что в «Улучшенном издании» каждая из них становится источником освещения. Если классическое прямое освещение (англ. Forward rendering) при растеризации значительно увеличивает нагрузку на железо с каждым добавленным в игру источником света, а более новый метод отложенного рендеринга (англ. Deferred rendering) существенно уменьшает нагрузку от большого количества источников освещения, но создает другие нюансы, вроде проблем с полупрозрачными текстурами, сглаживанием MSAA и требованиям к видеопамяти. Трассировка решает всё сразу — количество источников освещения не имеет особого значения, поэтому каждая лампочка в гирлянде, каждая неоновая вывеска, каждый монитор компьютера и даже голографический прицел оружия реально освещают окружение, а не просто имитируют свет.
Отражения
Конечно же, «Улучшенное издание» поддерживает и отражения при помощи RTX. Но если во многих других играх — это главная и самая заметная фишка, то в «Метро: Исход» она отходит на второй план. И дело в количестве отражающих поверхностей. Их много в застекленном витринами Лондоне из Watch Dogs: Legion и в Найт-Сити из Cyberpunk 2077 — но в постапокалиптическом мире все эти зеркала, полированные металлы, стекла и глянцевые пластики встречаются куда реже. Тут в почете ржавый металл, а он слишком диффузный, чтобы убедительно что-то в себе отражать.
Тем не менее, местами в игре есть и лужи, и водоемы, и даже стекла, но отражается в них не все. По умолчанию во всех графических пресетах игра ставит отражения на гибридные — смесь классических отражений в экранном пространстве (англ. SSR, screen space reflections) и трассированных отражений. Однако даже если переключить игру на то, чтобы все отражения были при помощи RT, то ничего не меняется. Мы заметили, что игра активно использует SSR для отражений материалов с альфа-каналом (листвы, пепла и т.д.), но даже стационарные объекты зачастую пропадают, когда они выходят из кадра. Алекс Батталья из Digital Foundry заметил то же поведение, но если он считает, что это оптимизация, то мы склоняемся к тому, что это просто баг, который просто исправить с патчем. В любом случае, игра использует стохастические отражения в экранном пространстве, которые бросают лучи, чтобы проверить, что отражаются в нужном месте. SSR в «Улучшенном издании» один из лучших в играх, поэтому если не искать, то скорее всего, таких деталей вы не заметите.
Красота не требует жертв?
«Метро: Исход — Улучшенное издание» идет бесплатно со всеми копиями оригинальной игры на ПК в Steam, GoG, EGS и Microsoft Store, но требует видеокарту с поддержкой аппаратного ускорения трассировки лучей — NVIDIA RTX 20-ой и 30-ой серии и AMD Radeon 6000-ой серии. Без RTX играть не выйдет, эта версия вообще не содержит обычных хаков, которые создают освещение в нетрассированной игре.
В «Улучшенном издании» многие сцены выглядят совершенно иначе, потому что теперь для расчета освещения учитываются абсолютно все источники света, даже каждая отдельная свеча. В оригинале используется приблизительное освещение и движок не знает, что с ним делать — ни у кого из персонажей нет теней. Изменились и мелкие детали — теперь движок верно учитывает окклюзии, и угол стола со свечами больше не светится, будто перед ним стоит лампа, а каждая свеча отбрасывает реалистичную мягкую тень
Это позволяет разработчикам не тратить огромное количество времени на ручное выставление света, его отражений, заполняющих источников, запекание карт теней и отражений и так далее. Это приближает работу дизайнера уровней к работе гафферов в кино — они создают световой рисунок, а дальше в дело вступает физика. Трассировка лучей не делает работу разработчиков проще, но теперь им не надо тратить время на имитацию реалистичного света, им просто надо его контролировать.
Логично предположить, что если игра требует новейшие видеокарты, то и грузит она их гораздо больше. Но это не так: инженеры 4A Games и NVIDIA многому научились за последние годы, алгоритмы стали более оптимизированными, а из игры убрали костыли, необходимые для обратной совместимости со старыми технологиями.
Конфигурация тестового компьютера:
- Процессор: AMD Ryzen 9 5900X 12/24 ядер
- Оперативная память: 32 ГБ (2х 16 Гб HyperX Fury Black 3200Mhz CL16)
- Видеокарта: NVIDIA GeForce RTX 3090 Founders Edition
- Материнская плата: ASUS PRIME X570-P
- Блок питания: 1600 Вт
- GeForce Game Ready driver 466.27
- Resizable BAR, Above 4G decoding и аппаратное ускорение планировщика GPU включены
«Метро: Исход — Улучшенное издание» работает гораздо быстрее оригинальной версии — на 21% в 1080p и на целых 36% в 1440p и 4K. Производительность редких событий, которые влияют на плавность игрового процесса, выросла примерно так же. Однако у Enhanced Edition выше нагрузка на процессор, потому что трассировка лучей требует больше ресурсов, а в этой версии RTX-эффектов намного больше, чем в оригинале.
Выжать больше производительности из видеокарты поможет и технология DLSS 2.0. Оригинальная игра вышла с устаревшей на тот момент версией DLSS 1.0, алгоритм машинного обучения которой надо было тренировать на каждой конкретной игре. Вскоре после запуска, алгоритм обновили, DLSS стала работать лучше, но теперь в игре есть самая последняя версия этого алгоритма реконструкции, который не требует тренировки на конкретной игре и работает ощутимо лучше, чем другие аналогичные алгоритмы вроде шахматки (англ. checkerboarding) и реконструкции при помощи TAA.
Улучшенная версия «Метро: Исход» — это самый амбициозный ААА-проект, исполнение обещаний об играх будущего, которые дала NVIDIA на запуске первых видеокарт с RTX в 2018 году. На смену старым графическим трюкам пришла симуляция. Хочется надеяться, что в будущем такой подход позволит даже маленьким независимым разработчикам делать чрезвычайно красивые игры, а большим студиям не вылизывать графику, а уделять больше времени контенту. Прецедент создан, осталось дождаться реакции игровой индустрии.