Геймдев
#статьи

Разбор DLSS 3 и FSR 3: как в играх создают искусственные кадры

Новые технологии уверенно захватывают рынок.

Иллюстрация: Катя Павловская для Skillbox Media

Сегодня разработчики повсеместно используют технологии искусственного достраивания изображения, чтобы добиться от своих игр лучшей производительности. Никого уже не удивишь наличием DLSS или FSR, которые увеличивают разрешение, почти не нагружая видеокарту.

Подобные технологии активно набирают обороты. И недавно видеокарты научились не только улучшать изображение на основе готовой информации, но и создавать полноценные новые кадры. Отвечают за этот процесс новейшие версии уже знакомых технологий — DLSS 3 от NVIDIA и FSR 3 от AMD. По заверениям инженеров компаний, подход с созданием кадров позволяет удвоить фреймрейт в игре без ощутимых изъянов. Звучит очень амбициозно.

Редакция «Геймдев» Skillbox Media разбирается, как устроены генераторы кадров DLSS 3 и FSR 3.

Содержание

Что такое интерполяция кадров

На первый взгляд кажется, что создание целого несуществующего кадра — задача из области фантастики. Технология должна каким-то образом нарисовать объекты и сложные панорамы с нюансами освещения. Но в действительности всё проще, чем кажется.

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

Поля оптического потока используются не только в играх. Благодаря им сегодня работают автоматизированные системы в автомобилях: круиз-контроли, автопилот и механизмы экстренного торможения
Изображение: Combining Stereo Disparity and Optical Flow for Basic Scene Flow / Research Gate

Использование оптического потока — один из самых популярных способов создания интерполированного кадра. Но есть и другие. Например, можно буквально совместить два соседних кадра и сделать их полупрозрачными. Видео в результате получится очень размытым, зато реализовать подобное очень легко.

Типичный пример интерполированного кадра, полученного при помощи совмещения кадров. Вокруг движущихся объектов неизбежно возникает полупрозрачный след
Изображение: Optical Flow vs Frame Blending vs Frame Sampling / Shawn Dolinski

Простые технологии генерации изображений появились ещё в середине 1970-х годов, но особенно востребованными стали с появлением дисплеев с высокой частотой обновления. Возник контраст между культурой производства контента и его потреблением. Большинство фильмов и телепередач создаются с прицелом на 24 кадра в секунду. А вот телевизоры и мониторы уже давно научились обрабатывать 60, 120 и даже 240 кадров в секунду. Чтобы выделить это преимущество, производители устройств начали встраивать в телевизоры технологии, которые делают контент более плавным благодаря интерполяции кадров.

Стремительно развивающиеся нейросети научились достраивать видеоряд эталонно — энтузиасты «омолодили» даже самые ранние классические фильмы вроде «Прибытия поезда». Но пока технологии не умеют делать это в реальном времени
Видео: Arrival of a Train at La Ciotat / AmazingVideosShow

В некоторых случаях (например, при просмотре спортивных матчей) это может быть очень кстати. Картинка становится плавнее и динамичнее. Однако интерполяция кадров неизбежно создаёт артефакты на промежуточных кадрах. Они могут выглядеть неестественно и размыто. При непрерывном просмотре же объекты превращаются в бесформенный кисель. Обычно это называют эффектом мыльной оперы.

Некоторым кинематографистам настолько не нравится интерполяция кадров, что они открыто просят зрителей отключать эти технологии перед просмотром. Здесь, например, Том Круз и Кристофер Маккуори уверяют, что плавный эффект испортит впечатления от фильма «Топ Ган: Мэверик»
Видео: Tom Cruise Motion Smoothing PSA / YouTube

И это неудивительно. Создать идеальный промежуточный кадр кинофильма при помощи математических алгоритмов почти невозможно. Во-первых, соседние изображения могут сильно отличаться друг от друга. Во-вторых, система вынуждена работать лишь с набором пикселей — ей недоступна какая-либо информация о фактическом расположении актёров в кадре.

Наглядная демонстрация артефактов от интерполяции кадров. Справедливости ради, сегодня есть алгоритмы, которые работают чище
Видео: Artifacts from conventional frame interpolation / YouTube

К тому же многим режиссёрам не нравится сам факт искусственных изменений исходного материала. 24 кадра в секунду — стандарт в кино, и бездумно увеличивать их частоту уместно не всегда.

Как работает DLSS 3

Если интерполяция в кино даёт лишь частичный эффект и порождает артефакты, то как технологии удалось быстро закрепиться в игровой индустрии? Дело в том, что фреймрейт игр выше, чем в фильмах (в некоторых случаях он и вовсе не ограничен), и даже в кинематографичных проектах, где всё должно выглядеть как в кино, он не опускается ниже 30 FPS. Таким образом, разница между двумя изображениями оказывается меньше. А значит, дорисовать промежуточный кадр технологиям проще.

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

Первым массовым генератором кадров стал DLSS 3. NVIDIA представила технологию в сентябре 2022 года. Формально она очень похожа на решения для телевизоров: видеокарта генерирует два настоящих кадра, создаёт поле оптического потока, чтобы оценить скорость и направление движения пикселей внутри них, а затем генерирует промежуточный кадр. Несмотря на похожую структуру, DLSS 3 с самого начала показывал куда более впечатляющие результаты, чем аналоги технологии для ТВ.

Маркетинговая путаница

Многие игроки путаются в том, что же такое DLSS. Это неудивительно, ведь сегодня за аббревиатурой скрывается целый набор технологий. DLSS 2 отвечает за увеличение разрешения без ущерба для производительности. DLSS 3 — это генератор кадров. Reflex же, который компания также считает частью пайплайна DLSS 3, — это отдельная технология, призванная снизить задержку ввода со стороны игрока. Появилась она задолго до технологий искусственного улучшения картинки от NVIDIA.

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

В чём же разница и почему DLSS 3 не создаёт эффекта мыльной оперы? В первую очередь это связано с тем, что алгоритму доступна не только информация о пикселях на экране. Генератор кадров также использует векторы движения объектов и карты глубины, которые используются в апскейлерах — про них мы писали в отдельной статье. Они позволяют с большей точностью указать на движение основных объектов в сцене.

Создание оптического потока на основе двух последовательных кадров
Изображение: AI-Powered Performance Multiplier Boosts Frame Rates By Up To 4X / NVIDIA / Skillbox Media

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

Также NVIDIA использует специальные ускорители оптического потока, доступные в видеокартах 4000-й серии RTX. Именно поэтому технология остаётся эксклюзивом новых GPU. Кроме того, как уже отмечалось выше, видеоигры плавнее, чем кино, поэтому разница между отдельными кадрами в них менее значительная.

Фильмы снимаются с частотой 24 кадра в секунду, и каждое изображение задерживается на экране на 41 миллисекунду. За это время в стремительных боевиках сцена может существенно измениться. В первом кадре взрыв только начинается, а во втором — уже закончится. Тем временем классический плавный фреймрейт игр — 60 FPS, и на каждый кадр в таком случае выделяется 16 миллисекунд. За этот промежуток времени изображения меняются не так сильно друг относительно друга, поэтому кадр достроить легче. Алгоритму попросту сложнее ошибиться.

Решение от NVIDIA породило интересный конфликт. DLSS 3 доступна лишь на самых новых видеокартах, а вот острая необходимость в дополнительных кадрах есть преимущественно у пользователей со старым железом. К тому же для корректной работы игра должна и без DLSS выдавать около 60 кадров в секунду.

В результате польза от интересной технологии становится не столь очевидной. Чем больше кадров нужно для комфортной игры, тем хуже технология справится со своей задачей. Фактически, больше всего от неё выигрывают обладатели несбалансированных ПК с мощной видеокартой, но слабым процессором. Если CPU выступает бутылочным горлышком и не раскрывает потенциал видеочипа, DLSS 3 приходится очень кстати.

Проблемы и недостатки DLSS 3

Несмотря на все свои достоинства, DLSS не может всегда эталонно достраивать кадры. Одна из главных проблем технологии в том, что результат напрямую зависит от исходного фреймрейта. Как показывает практика, с частотой выше 60 кадров в секунду композиция получается достоверной. Более того: даже если какой-то из кадров окажется бракованным, он задержится на экране всего на несколько миллисекунд — в большинстве случаев игроки не заметят подвоха.

Качество сгенерированных кадров напрямую зависит и от динамики игры. В спокойных играх вроде Microsoft Flight Simulator технология работает эталонно
Скриншот: игра Microsoft Flight Simulator / Microsoft

Но спускаться ниже не стоит. При 30 FPS, например, DLSS регулярно ошибается в подсчётах. К тому же возникает эффект снежного кома: когда фреймрейт ниже, каждый кадр находится на экране дольше, поэтому огрехи бросаются в глаза отчётливее.

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

То же самое касается цикличных анимаций или резких эффектов вроде вспышек из дула оружия или мелких частиц от взрыва. Зачастую такие эффекты становятся тусклыми или попросту игнорируются генератором, что вызывает дрожание картинки.

Первая картинка — обычный кадр, вторая — сгенерированный при помощи DLSS 3
Скриншот: Digital Foundry / YouTube

Наконец, ещё одна ахиллесова пята DLSS 3 — интерфейсы. Технология очень плохо справляется с предугадыванием движения различных иконок и указателей. Поначалу это приводило к очень неприятному эффекту во всех совместимых играх. Надписи в интерфейсе дрожали так сильно, что их зачастую было невозможно прочитать.

Степень проявления эффекта очень зависит от игры. В Hitman 3, например, интерфейса на экране почти нет. Да и сама игра не очень динамичная, поэтому генератор кадров почти не выдаёт себя. Но есть и радикально противоположные примеры. В F1 2023 имена соперников высвечиваются в плашках над их машинами и движутся вместе с ними.

Скриншот: Has NVIDIA Fixed DLSS 3 Issues / Hardware Unboxed

Из-за этого игрок постоянно видит на экране неприятную рябь. Как показывает практика, решение этих проблем требует дополнительных действий от разработчиков или отладки драйверов DLSS 3. В некоторых играх, таких как Cyberpunk 2077, проблемный интерфейс со временем исправили.

Как работает FSR 3

В прошлом году AMD представила свой генератор кадров, FSR 3. Как и в случае со своими прочими технологиями, компания сделала упор на доступность и универсальность. FSR не требует специальных вычислительных блоков, поэтому использовать его можно даже на относительно старых видеокартах от любых производителей.

Ещё одно неоспоримое преимущество открытой технологии — возможность работы на консолях. Сегодня FSR 3 доступен лишь в Immortals of Aveum на PS5 и Xbox Series X/S, но в будущем список игр наверняка станет значительно больше
Видео: Artifacts from conventional frame interpolation / YouTube

Как и DLSS, FSR использует карты глубины и векторы движения, которые получает от движка, а также создаёт поле оптического потока для анализа смещения двух изображений. Главное различие между технологиями в том, как генерируются оптические поля.

FSR не использует специальные ускоряющие ядра, поэтому действует проще. Алгоритм делит изображение на набор блоков 8×8 пикселей и отслеживает существенные изменения внутри них. В теории, такой подход должен негативно отражаться на итоговом результате, однако в реальности FSR 3 уже на старте показывал впечатляющие результаты.

Главные проблемы технологии кроются не в качестве картинки, а в удобстве использования. Как и в случае с DLSS, технология иногда некорректно работает при включённой вертикальной синхронизации.

Также генератор кадров от AMD до недавнего времени форсированно включал апскейлер FSR 2. Это происходило из-за того, что обе технологии зависят от одинакового набора данных от движка. При этом технически никакого противоречия тут нет: формально технологии могут работать опосредованно друг от друга. В улучшенной версии технологии, FSR 3.1, генератор кадров можно чередовать с любыми апскейлерами (даже с DLSS от конкурентов) или же не включать его вовсе.

* * *

Технологии генерации кадров закрепились в индустрии очень быстро. Уже на старте они показывали приемлемые результаты и в будущем обещают стать только лучше. Впрочем, их реальная польза пока не столь очевидна. Конечно, многие игроки хотели бы получить бесплатный прирост производительности, но DLSS и FSR не превратят 30 FPS в красивые и равномерные 60 FPS.

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

Запишите ребёнка на бесплатный урок в Skillbox Kids ➞
Учим детей программированию, веб-дизайну и разработке игр. Преподаватель — IT-эксперт — подберёт курс по интересам ребёнка. Подробности — по клику.
Узнать больше
Понравилась статья?
Да

Пользуясь нашим сайтом, вы соглашаетесь с тем, что мы используем cookies 🍪

Ссылка скопирована