Генерация кадров NVIDIA: как нейросети заставили нас спорить о «фальшивом» фпс

Больше – не значит лучше?

Как уже писалось в других постах, Хуанг умеет продавать нам новые технологии. Вслед за апскейлерами и лучами, осенью 2022 года вместе с выходом видеокарт серии RTX 40xx NVIDIA выкатила генератор кадров (FG) вместе с новым DLSS 3. Обещания снова звучали как визуальная революция: теперь специальный чип и ИИ буквально дорисовывали промежуточные кадры из воздуха, удваивая фпс. Сама по себе концепция дорисовки кадров не нова. В телевизорах алгоритмы интерполяции (пресловутый «эффект мыльной оперы») уже существовали годами. Но в гейминге обсчитывать это все нужно было в реальном времени, за миллисекунды, анализируя векторы движения. На презентациях графики производительности улетали в космос, но получилось так, что на релизе технология вызвала столько же восторгов, сколько и хейта. Игроки быстро поняли, что нарисованные кадры — это не честный рендеринг, и у «бесплатного» фпс есть своя цена.

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

Да, на телевизорах мы видели подобное давно, но там не нужно управление процессом

Несмотря на то, что генератор от NVIDIA на старте работал лучше появившихся позже аналогов (например, от AMD), недостатков хватало с головой. Главная причина споров — инпут-лаг (задержка ввода). ИИ нужно время, чтобы проанализировать два реальных кадра и вставить между ними фейковый. В итоге счетчик показывает 80 фпс, а игра отзывается так, будто фпс опускается ниже 40. По итогу игрок «убегал» от низкого фпс, получая лишь новые цифры на счетчике, но вот сам низкий фпс от него не "убегал". Какой-то фпс Шредингера: вроде он есть, а вроде - нет. Все потому, что в момент «закладывания» нового кадра не идет никакой информации ни от мыши, ни от клавиатуры в сам ПК. При этом, еще часть времени тратится на рендеринг базового кадра, что также увеличивает задержку. Получается так, что каждый бутафорский кадр как бы «замирает» на небольшое время, вызывая задержку.

Самая первая генерация кадров работала 1 в 1, но сильно хуже
Самая первая генерация кадров работала 1 в 1, но сильно хуже

Если говорить на языке поп-культуры, то наглядным примером данной проблемы является проклятая техника Наои Зенина «Проекция» из невероятно популярного в мире тайтла манги и аниме «Магическая битва». Суть заключается в том, что пользователь техники заранее намечает себе траекторию движения в виде кадров, которые он выполнит в следующую секунду. Но двигаться все должны по строго заданной траектории. Если его противник или сам Наоя допустит какую-то ошибку, нарушив заложенную траекторию, то он замрет на 1 секунду, прежде чем сможет продолжить движение. Генератор кадров работает очень похоже: чем больше ошибок, артефактов или кадров вставляется, тем выше задержка ввода, что делает геймплей неудобным, а в худшем случае модельки вообще будут двигаться в «слоумо»

В движении противника происходит "задержка" при попадании в кадр
В движении противника происходит "задержка" при попадании в кадр
А если без мемов, то все-равно не понятно, кто кем вдохновлялся, Хуанг Геге или Геге Хуангом ;)
А если без мемов, то все-равно не понятно, кто кем вдохновлялся, Хуанг Геге или Геге Хуангом ;)

В медленных играх это было условно терпимо, но представьте, каково играть с такой задержкой в динамичные слэшеры вроде Devil May Cry, Ninja Gaiden или Metal Gear Rising, где важна каждая миллисекунда? Или в шутеры, навроде BattleField или Call of Duty? А в ранних версиях задержка порой могла быть даже выше 1 секунды! Вторая беда — визуальные артефакты. Ранние версии генератора отвратительно работали с UI-интерфейсом: прицелы, текст и элементы интерфейса в динамике просто разваливались на пиксели. Вокруг быстро движущихся объектов появлялся мерзкий гостинг (шлейфы). Возникал вопрос: «Зачем мне высокий фпс, если в движении картинка рассыпается, а управление кисельное?». К тому же, генератор работает как множитель: если базовая частота кадров низкая (около 30), то генерация до 60 превратит геймплей в неиграбельное месиво из артефактов. Технология также требовала отдельного аппаратного блока — Optical Flow Accelerator, что изначально заперло её внутри линейки RTX 40xx. Критики назвали генерацию «бутафорской плавностью», а игроки массово отключали функцию, предпочитая честные 60 фпс искусственным 120.

Хуанг: "Хочешь поиграть в слэшеры с генератором кадров?"
Хуанг: "Хочешь поиграть в слэшеры с генератором кадров?"

Работа над ошибками

NVIDIA ответила постепенной доработкой алгоритмов. Нейросети научились предсказывать кадры, отделять интерфейс от сцены, гостинга стало в разы меньше, а обязательное включение технологии Reflex снизило задержки до минимально приемлемого уровня. В современной версии DLSS 4.5 задержка ввода практически отсутствует, а чаще всего даже не отличима от натива, особенно при использовании умеренной генерации х2 и х3 кадра. NVIDIA почти избавились и от артефактов и гостинга Даже при средне-тяжелой генерации х4-6 задержку можно определить как хорошую/терпимую, а качество картинки – очень хорошим. Поэтому сегодня генерация кадров — это стандарт для некоторых современных AAA-проектов, даже для топового железа. Но появилась другая проблема: разработчики начали использовать её как костыль для ленивой оптимизации, как и сам DLSS когда-то. Вместо того чтобы «вылизывать» код движка, нам просто предлагают замазать просадки генератором. При этом на актуальном железе технология действительно раскрывается. Если взять свежие карты RTX 50-й серии, где та же 5070 Ti за свои ~70к рублей выдает отличную честную базу кадров, или 5080, генератор позволяет легко выжать 120+ фпс в 2K или 4K в самых тяжелых сценариях. Базовый фпс высокий, поэтому ИИ работает идеально, без артефактов и дает невероятную плавность для высокогерцовых мониторов. При этом в ряде тяжелых проектов (не будем тыкать пальцем), генерацию кадров порой приходится использовать даже на 5090, чтобы повысить фпс выше 60 кадров.

Киберпанк передает привет
Киберпанк передает привет

А что сейчас?

Генератор кадров не заменяет оптимизацию и не спасает слабые ПК от тормозов - для него нужен хороший «фундамент» железа. Она лишь добавляет плавность туда, где процессоры и видеокарты упираются в потолок из-за тяжелой геометрии или лучей. Несмотря на то, что технология была значительно улучшена, многие геймеры включают ее в том случае, где фпс опускается ниже 60 кадров в секунду и только в умеренной генерации (х2-3), чтобы не увеличивать задержку и не «плодить» артефакты изображения. Да и есть еще над чем поработать: в DLSS 4.5 реконструкция лучей не работает с генератором кадров. Сам же генератор до сих пор занимает немаленький объем видеопамяти, что может быть критично в некоторых тяжелых играх в высоком разрешении на видеокартах, где NVIDIA "зажала" нормальный объем памяти, навроде 5070 или 5080. Да и работает технология лучше всего на видеокартах линейки RTX 50хх, оставляя владельцев карточек из других поколений "с носом"

Disclaimer: Все визуальные материалы в данной статье использованы в информационных целях. Права на изображения принадлежат их законным владельцам. Все изображения взяты из открытых источников. Источники:
1,3)Презентация FG от NVIDIA
2)Atomic Heart от Mundfish
4,5)Манга/аниме "Магическая битва" от Акутами Геге и студии Mappa
6)DMC 5 (игромем) от Capcom
7)Cyberpunk 2077 от CDprojectRed

9
4
2
2
2
50 комментариев