Как технологии апскейлинга меняют будущее графики

Изучаем современные технологии повышения разрешения и рассказываем, какую магию используют их создатели, чтобы делать почти идеальную картинку

Последние пять лет мы постоянно слышим про новые технологии апскейла — это повышение разрешения игр, позволяющее, например, превратить FullHD в 4К почти без потерь качества. Временное накопление, checkerboarding (шахматка), разреженный рендеринг, DLSS — нас заваливают терминами, которые что-то означают, но любые попытки понять заканчиваются открытым переломом мозга. Мы решили взглянуть на методы апскейла и реконструкции изображения в играх, понять как они работают, какой лучше и насколько светлое будущее ждет нас благодаря этим технологиям.

Зачем вообще нужен апскейл?



Давным-давно, когда компьютеры были светло-бежевые, их огромные мониторы с электронно-лучевой трубкой не имели фиксированного разрешения. Катодные трубки стреляли потоком электронов, отклоняющая система формировала изображение, а люминофор, которым были покрыты экраны, поглощал электроны и светился. Особенностью люминофора в том, что изображение на нем выглядит хорошо в любом доступном разрешении 1600x1200, 1024x768 или 640x480. Конечно, увеличение разрешения всегда было разменом — мы получали более высокую детализацию, но платили за это частотой обновления и растущими системными требованиями. Но факт остается фактом: в девяностые, если игра плохо шла на твоем компьютере, легко можно было понизить разрешение, не думая о последствиях.



С приходом ЖК-мониторов ситуация изменилась. У них есть фиксированные пиксели — физические объекты, состоящие из красного, зеленого и синего субпикселей. Любое разрешение, которое ниже количества пикселей на экране, просто растягивается. И если растягивание происходит средствами самого дисплея, то это приводит к появлению «мыла». Такой порядок вещей не исправят даже новейшие дисплейные технологии: OLED, MicroLED, плазма — все они основываются на фиксированной сетке пикселей.

В 2020 году малореально купить хороший телевизор с разрешением ниже 4К (3840х2160), многие компьютерные мониторы и экраны ноутбуков тоже перешли на 4К. Рендерить игры в таком разрешении сложно даже для самых современных видеокарт — топовые модели NVIDIA еще как-то справляются, а на AMD в большинстве игр пока лучше даже не пытаться.

С консолями нынешнего поколения ситуация та же. Рендерить 8 миллионов 294 тысячи 400 пикселей каждые 33 миллисекунды (30 FPS) очень непростая задача, а избежать замыленности изображения хочется. Так что же делать?

Квантовый прорыв





В марте 2016 года авторы игры Quantum Break ошарашили поклонников новостью, что она будет работать в жалком разрешении 720p. Учитывая слабое железо целевой платформы Xbox One и красивую для своего времени картинку, новость никого не удивила, но определенно расстроила. А вот заявление Remedy, что игра использует алгоритм временной реконструкции, чтобы выглядеть так, будто она работает в 1080p, вызвало гораздо больший интерес.

Движок Quantum Break использовал информацию из предыдущих кадров и векторы движения, чтобы построить картинку 1080p из рендера в 720p, увеличивая количество пикселей в 2 раза. По сути, это был один из первых случаев использования современного метода апскейла изображения.

Да, построенное таким образом изображение выглядело более размытым, но это не оказалось большой проблемой. В Quantum Break также использовались ролики с живыми актерами, с которыми «мягкая» картинка хорошо состыковывалась. Ну а на хорошем ПК при 4К и 60 кадров в секунду и вовсе сложно заметить разницу между изображением без апскейла и с ним — ведь реальное разрешение берется уже 1440p.



Quantum Break сделала свое дело — вся игровая индустрия заговорила о временной реконструкции изображения.

Шахматная партия



Похожей работой занимались и авторы Rainbow Six Siege. Вышедшая на год раньше Quantum Break игра одной из первых стала использовать разрежённый рендеринг, который позже появился и в Unreal Engine 4. Ubisoft Montreal поставила перед собой задачу сделать игру, которая будет работать в 1080p60 на консолях и 4К60 на ПК. На Xbox One и большинстве компьютеров того времени это было невозможно.

В своем докладе на GDC 2016, разработчики рассказывали, что сначала попробовали чересстрочный рендеринг, когда для первого кадра рендерятся четные строки, а для второго — нечетные. Это создало много проблем — на прямых линиях появляется алиасинг, на узорах — муар, тени мерцают, а свет от полицейских проблесковых маячков наоборот резко пропадает.

Решение оказалось простым и одновременно сложным — вместо чередования строк чередуются пиксели в шахматном порядке. Если кадр статичный, то работа закончена, кадры складываются, получается полное разрешение. Но в играх почти всегда что-нибудь движется, поэтому для сглаживания и добавления пропущенных пикселей игра использует временное сглаживание (TAA), которое копирует недостающие пиксели из уже восстановленного предыдущего кадра. Метод Ubisoft устарел, поэтому сейчас его не используют даже в самой «Осаде». Но на момент выхода игры это была очень крутая технология.



Разработка Ubisoft привлекла внимание Microsoft и Sony, которые как раз готовились к 4К-обновлению своих консолей. Уже тогда было понятно, что даже с обновленным железом Xbox One X и PS4 Pro смогут тянуть далеко не все современные игры в 4К. А вот в 1440p — вполне! Оказалось, что AMD, партнер обеих компаний по железу, тоже следит за развитием разрежённого рендеринга и готов встроить в обновленные консоли логику, ускоряющие его обработку.

Шахматный рендеринг работает достаточно хитро. Вместо того, чтобы создавать каждое изображение как оно есть, пиксель в пиксель, в каждом новом кадре изображение поочередно сдвигается влево и вправо так, чтобы при наложении 2 соседних кадров вышло изображение в полном разрешении. Это называется джиттеринг. Во многих современных играх есть буфер, в котором хранится информация о том, как двигаются пиксели в трехмерном пространстве игры. Он используется, например, для создания размытия в движении. Тот же самый буфер можно использовать для восстановления пропущенных пикселей в шахматке. Ну а «старые» пиксели убираются с помощью известной технологии временного сжатия (TAA). Для уже сдвинувшихся пикселей алгоритм берет 9 пикселей (квадрат 3х3) из предыдущего кадра и усредняет минимальные и максимальные значения с предыдущим кадром. Именно из-за этого игры с TAA выглядят немного размазанными и оставляют “призраки” объектов, которых уже нет.

Шахматку достаточно сложно внедрять в игры, если не делать это с самого начала разработки. Поэтому эксклюзивы Sony, например, показывают отличные результаты, а сторонние игры, вроде Red Dead Redemption 2, иногда страдают. Но в динамичных играх артефакты в основном заметны на роликах-разборах Digital Foundry, а в реальности же шахматка дает отличный результат. Не исключено, что алгоритм используют и в следующем поколении консолей — например, свидетельства его работы можно заметить в трейлере Horizon: Forbidden West.

Магия нейросетей



В августе 2018 года NVIDIA анонсировала видеокарты серии RTX, а вместе с ними — новый алгоритм сглаживания DLAA (Deep Learning Anti-Aliasing — англ. Сглаживание при помощи глубокого обучения). Уже через месяц его переименовали в DLSS, — super-sampling подразумевает, что алгоритм будет не только чистить изображение от зубчиков алиасинга, но и апскейлить изображение, чтобы эффекты трассировки лучей RTX не очень сильно замедляли систему.

Первые игры с поддержкой DLSS 1.0 много критиковали — хоть они и работали быстрее рендеринга в родном разрешении, но изображение заметно размывалось. Многие игроки и журналисты раскритиковали новую технологию. В августе 2019 года вышла игра Control, в которой была своя уникальная версия DLSS 1.9. Remedy использовали накопленный в Quantum Break опыт и получили отличный результат.



Собственно, принцип работы DLSS схож с разреженным рендерингом, который использовали в Quantum Break. Технология берет кадры в низком разрешении с джиттерингом и собирает их в картинку с более высоким разрешением. Вот только для сборки изображения и удаления лишних пикселей здесь используется нейросеть, которая работает куда эффективнее.

Поначалу DLSS требовала плотного сотрудничества между разработчиком игры и NVIDIA. Алгоритм игры тренировали, прогоняя его через кучу кадров из игры в супервысоком (намного выше, чем 4К) разрешении. Собрать кадры из всех локаций игры сложно и в обычных обстоятельствах, а сделать это с незавершенным проектом — задача, за которую возьмется далеко не каждый разработчик.

В марте 2020 года года вышел DLSS 2.0. Особенность этого алгоритма в том, что он не требует адаптации под какую-то конкретную игру. Как такое стало возможным, в NVIDIA не раскрывают, но наша версия — DLSS 2.0 удалось натренировать на
«подопытных» играх до такого уровня, что он набрал «опыта», достаточного для любого проекта.

DLSS 2.0 поддерживает любые разрешения и форматы экранов (раньше с этим могли быть проблемы), а реконструкция в режиме производительности позволяет рендерить игру в разрешении в 4 раза ниже разрешения экрана. Например, для 4К рендерится 1080p, для 1080p — 540p.

Самое удивительное — это качество изображения. Более ранние алгоритмы реконструкции действительно давали заметные недостатки: следы в движении (гостинг), размытая картинка, клеточка на мелких деталях типа волос, отсутствие деталей вдали. В DLSS 2.0 таких проблем практически нет, а в некоторых случаях алгоритм и вовсе срабатывает лучше. Недавно вышедшая Death Stranding выглядит гораздо четче с реконструкцией, чем без нее или с другим видом сглаживания. Текстуры более резкие, мелкие субпиксельные детали вроде волос или сетки на заборе не мельтешат и не муарят (муар — фальшивый узор, возникающий из-за неправильной интерполяции очень мелких деталей). В низких разрешениях DLSS 2.0 идет дальше и добавляет на изображения детали, которые вообще не должны рендериться в таком разрешении, вроде источников света.



Другая особенность DLSS 2.0 — это производительность. В режиме максимального качества картинки Death Stranding работает на 38% быстрее, чем в оригинальном разрешении, в режиме производительности — на 70%. Для сравнения, RTX 2080 Super выдает в 4К без апскейла в среднем 40 FPS, а RTX 2060 в 4К с DLSS в режиме производительности — стабильные 60.

Конечно, у DLSS есть и свои проблемы. В той же Death Stranding картинка иногда резче и детальнее, чем оригинальное разрешение, а иногда чуть-чуть замыленнее. Некоторые геометрические детали вроде закругленных углов стен в Control восстанавливаются не совсем правильно, как прямые углы. Но заметить подобные артефакты можно только очень наметанным глазом, и, на наш взгляд, это не такая большая цена за возможность играть со значительно более высоким разрешением и/или FPS.

Причем есть вероятность, что уже в ближайшее время эта возможность появится не только в «избранных» играх. У технологии те же требования к игровым движкам, что и у временного сглаживания — поддержка джиттеринга и векторов движения. Сейчас временное сглаживание поддерживают почти все игры — а значит, в теории могут работать с DLSS 2.0. Ходят слухи, что в сентябре NVIDIA объединит GeForce Experience и панель управления драйвером и добавит DLSS 3.0, который пользователь сам сможет включать в любой игре, в которой уже есть поддержка TAA. Если слух окажется правдой, то карты, начиная с RTX 2060, получат «второе дыхание», ну а грядущая 3000-я серия и вовсе станет решением на долгие годы.

И в «щедрости» NVIDIA есть простой расчет. Уже осенью выходят консоли нового поколения, видеокарты которых сравнимы со RTX 2080 Super и 2080 Ti, а цена будет заметно ниже аналогичной сборки компьютера. Плюс есть слухи, что той же осенью AMD выпустит видеокарты, которые смогут конкурировать не только с текущим, но и со следующим поколением видеокарт NVIDIA. В условиях столь жесткой конкуренции любое оружие хорошо.

Прекрасное далёко



Следующее поколение игровых консолей уже сейчас демонстрирует умный подход к созданию изображений. Разреженный рендеринг, изменяемая частота затенения, общая память для процессора и видеокарты, SSD для более эффективного использования оперативки. Однако, они могут пойти еще дальше. Алекс Баталья, специалист Digital Foundry, предполагает, что технология, схожая с DLSS, может быть создана для Xbox Series X. Алекс полагает, что технология будет работать заметно медленее, но этого все равно будет достаточно для игр в 4К и с трассировкой лучей. Пока нет никакой информации о чем-то похожем от Sony, но учитывая, что Xbox Series X и PlayStation 5 построены на очень похожем железе, никаких препятствий мы не видим.

Вряд ли в стороне останется и Nintendo. В консоли Switch используется чипсет NVIDIA Tegra — поэтому, если слухи о Switch Pro окажутся правдой, то не исключено, что новое решение NVIDIA (Orin или еще более продвинутая версия) получит все ту же DLSS. Причем в портативной консоли эта технология сможет не только улучшать картинку, но и поможет экономить заряд батареи.

Еще одно потенциально интересное применение машинного обучения в играх — апскейл текстур игр на ходу. В последнее время модно вытаскивать текстуры из старых игр, прогонять через нейронные сети и выпускать модификации в высоком разрешении. Некоторые результаты поражают. Взгляните, например, на Star Wars: Jedi Knight — Jedi Academy.



Сейчас такие модификации требуют ручной работы — нужно достать текстуры из файлов игры, прогнать их через долгую процедуру апскейла, упаковать обратно в игру, а затем еще потратить какое-то время на тестирование. Но если посмотреть на работу Microsoft с обратной совместимостью игр на Xbox One X и Xbox Series X, то можно представить, что уже через несколько лет появится технология, перехватывающая и поднимающая разрешение текстур на лету. Причем доступна она будет и на ПК — не забывайте, что Microsoft сейчас видит Xbox как единую экосистему для игр на той платформе, которая наиболее удобна для пользователя.


Полтора года назад devtech NVIDIA Дмитрий Ждан, который работал с 4A Games над добавлением в Metro Exodus глобального освещения при помощи RTX и DLSS, рассказал в интервью, что считает рендер в сверхвысоких разрешениях не самой оптимальной тактикой развития графики. По его мнению, куда разумнее взамен повышать частоту кадров и добавлять более сложное и реалистичное освещение. Дмитрий не одинок в своих убеждениях. Выше мы уже писали, что на скриншотах Horizon: Forbidden West, то на них видны артефакты шахматного апскейла. У PS5 наверняка хватит мощности на то, чтобы практически любая игра работала на ней в 4К, но Guerrilla Games сознательно решила оставить эти ресурсы для света, теней, моделей, отражений, симуляции и прочих мелких деталей. Именно из них складывается по-настоящему красивое изображение, а небольшие артефакты в быстрых и динамичных играх просто не успеваешь заметить.

При помощи DLSS 2.0 в режиме производительности уже сейчас во многие игры можно будет играть в 8K60. Это настолько много, что в случае с 40-дюймовым экраном даже человек с идеальным зрением не сможет разглядеть отдельные пиксели уже с полуметра. Как в свое время гонка разрешений закончилась на смартфонах, так она подходит к концу и на телевизорах и мониторах. Гнаться будут за более полезными вещами: частотой обновления, углами обзора, яркостью, контрастом, чистым черным цветом, HDR, глубиной цвета, цветовым охватом. Разработчики игр тоже перестанут гнаться за количеством пикселей и будут больше думать, перефразируя презентацию Xbox One X, об их качестве. Тем более, что расти здесь есть куда: начиная с повышения частоты кадров и заканчивая трассировкой лучей — не так давно мы рассказывали, что в играх пока используется крайне простая реализация RTX, которая заметно отстает от компьютерной графики для фильмов
.

Обсудить