Технологии в Играх: "AMD FSR"
AMD Fidelity FX Super Resolution (FSR) — технология масштабирования картинки, позволяющая увеличить производительность кадров с минимальными потерями качества. Первая версия FSR появилась в 2021 году, а сейчас все больше игр получает поддержку FSR 3. Как работает технология, как она эволюционировала, и чем отличается от конкурирующей DLSS?
Причины появления DLSS и FSR
Графика все время развивается, а вместе с ней потихоньку растет и разрешение. Казалось бы, еще недавно по планете шествовали ЭЛТ-мониторы с 1024х768. Но нет, в моде уже несколько лет панели 2К и 4К, количество точек на которых в разы больше.
Чтобы обеспечить современную графику в совокупности с высоким разрешением видеокарты из года в год наращивают свою вычислительную мощность. Однако требования графических движков уже давно растут непропорционально реалистичности выдаваемой картинки. Еще больше усугубило ситуацию внедрение трассировки лучей, а за ней — и трассировки пути. С их приходом и распространением производительности даже флагманских решений перестало хватать для обеспечения комфортной частоты кадров, не говоря уж о бюджетных видеокартах.
Как же поднять производительность без ухудшения графики? Самое простое решение — снизить разрешение рендера. Но современные мониторы не могут вывести картинку с «неродным» разрешением без искажений. Поэтому производители видеокарт озадачились разработкой технологий, которые смогут масштабировать изображение без большой потери качества. Первой была NVIDIA — в 2018 году она запустила Deep Learning Super Sampling (DLSS). Через два года AMD ответила на нее технологией Fidelity FX Super Resolution (FSR), которая на данный момент разменяла уже третье поколение. Но обо всем по порядку.
FSR 1.0
FSR была представлена в конце 2020 года как ответ на NVIDIA DLSS первой версии. В отличии от соперника, использующего для реконструкции кадра заранее обученную для каждой игры нейросеть, FSR обрабатывает изображение намного проще. Для этого используется пространственное масштабирование.
Рендеринг 3D-сцены производится в пониженном разрешении относительно экрана.
Картинка растягивается до целевого разрешения с помощью алгоритма масштабирования с открытым исходным кодом.
Изображение, полученное после масштабирования, проходит постобработку. Также повышается общая четкость, резкость граней и контраст.
На итоговую картинку накладываются элементы интерфейса игры в исходном разрешении.
По сути FSR первого поколения — это лишь хитрая постобработка, призванная заметно сгладить неприятные эффекты от пониженного разрешения рендера. Это ей более-менее удается, а вот четкость изображения при работе технологии не очень радует. Мелкие детали теряются, и чем дальше объекты — тем меньшую они получают детализацию.
Впрочем, чего еще ожидать от постобработки? Зато FSR, в отличие от DLSS 1.0, является открытой технологией. Ее можно использовать на любой видеокарте, тогда как DLSS на момент выпуска поддерживали лишь свежие GeForce RTX 2000. Да и первая DLSS качеством не всегда блистала, а ее распространенность оставляла желать лучшего. Поэтому FSR стала неплохой альтернативой для карт прошлых поколений — в том числе старых моделей от самой NVIDIA.
FSR 2.x
Несмотря на относительную простоту реализации, разработчики большинства игровых проектов внедрили FSR слишком поздно: лишь во второй половине 2021 года. К тому времени обрела популярность технология DLSS 2, которая могла работать уже на двух поколениях видеокарт GeForce — RTX 2000 и RTX 3000. Она обеспечивала более качественную картинку благодаря обработке с помощью универсальной нейросети на тензорных ядрах, которую не нужно было обучать для каждого проекта отдельно.
Стоит ли говорить, что по сравнению с FSR первого поколения у DLSS 2 качество изображения было намного лучше. AMD представила ответ только в начале 2022 года: им стала технология FSR 2. В отличие от предшественницы, она работает гораздо сложнее — здесь используется временное масштабирование.
Рендеринг кадра 3D-сцены производится в пониженном разрешении относительно экрана.
На основе векторов движения рассчитывается, насколько следующий кадр смещен от предыдущего и чем от него отличается.
Следующий кадр проходит рендер со сдвигом по отношению к предыдущему.
Временная информация из нескольких кадров и карты глубин совмещаются.
Картинка из этих данных «склеивается» и проходит дополнительную обработку проходом сглаживания.
Такой подход достаточно близок к DLSS 2. С той разницей, что нейросеть на тензорных ядрах для обработки кадров не используется — все вычисления выполняют универсальные шейдеры видеокарты. В этом кроется и огромный плюс технологии. Как и предшественница, FSR 2 способна работать практически на любом графическом оборудовании, в то время как DLSS 2 требует видеокарт серии RTX.
По качеству вторая версия технологии оказалась намного лучше первой — мелкие детали теперь не теряются, а при достаточно высоком исходном разрешении картинка порой выглядит даже лучше, чем в нативе. Но если сравнивать с DLSS 2, то не все так однозначно. В некоторых проектах технологии почти не отличаются. В других DLSS 2 выглядит лучше, и лишь в редких играх реализация FSR 2 берет над ней верх.
Впрочем, главная проблема у обеих технологий одна и та же. Это гостинг, то есть остаточные силуэты объектов с прошлых кадров на экране при быстром движении. К тому же в некоторых сценах возникает и мерцание текстур.
С целью уменьшить эти явления способ склейки кадров был несколько раз оптимизирован. Так на свет появились FSR 2.1 и FSR 2.2, в основе которых лежит доработанный метод временного масштабирования.
FSR 3.x
Исчерпав возможности временного масштабирования NVIDIA придумала еще один способ поднять производительность в играх — вставлять промежуточные сгенерированные кадры между отрендеренными. Компания решила использовать для этого ускоритель оптического потока, производительность которого заметно повысила в видеокартах RTX 4000. Вследствие этого технология DLSS 3 стала совместима только с картами этой серии, оставив за бортом прошлые поколения GeForce.
«AMD сделает доступнее и для народа!» — скажет читатель. И не ошибется: уже в середине 2023 года AMD представила FSR 3 с генерацией кадров, которая работает на современных графических процессорах от любого производителя: и NVIDIA, и AMD, и Intel.
Процесс вывода изображения на экран при работе FSR 3 проходит те же самые стадии, что и при FSR 2. Вдобавок к этому между каждыми двумя отрендеренными кадрами вставляется промежуточный. Он создается на основе анализа векторов движения и оптического потока — точно так же, как и в DLSS 3. Разница в том, что в FSR 3 для этих операций привлекаются не специализированные блоки, а универсальные шейдерные процессоры.
Как в случае с любыми технологиями генерации кадров, главные проблемы FSR 3 — заметные артефакты при быстром движении и увеличение задержки ввода. С последним призвана бороться отдельная технология Radeon Anti-Lag, которая автоматически задействуется при запуске генерации кадров.
Летом 2024 года AMD обновила FSR до версии 3.1. Артефактов стало меньше, а генерацию кадров теперь можно задействовать независимо от временного масштабирования.
Прирост производительности
Прибавка к производительности у разных поколений технологии отличается. В случае с FSR первого и второго поколения она напрямую обусловлена входным разрешением рендеринга. В режиме Performance, который использует уменьшенное вдвое разрешение по вертикали и горизонтали, прирост кадровой частоты может достигать двукратного.
Подобный эффект возможен, когда происходит явный упор в возможности ГП — то есть, частота кадров довольно низкая, а ЦП обладает достаточной производительностью и для более мощной видеокарты. Наиболее выражен он при целевом разрешении 4К. В системах с меньшим разрешением и «бутылочным горлышком» в виде процессора, а также при использовании старших пресетов FSR с большим входным разрешением, повышение производительности может быть не таким впечатляющим — полуторакратным, или даже меньше.
FSR 3 вдобавок к прибавке производительности от уменьшения входного разрешения генерирует дополнительные кадры — по одному на каждый реальный. То есть в условиях, описанных выше, производительность с ее помощью может быть увеличена вплоть до четырех раз.
Но при этом стоит учитывать, что, в отличие от первых двух версий технологии, FSR 3 вносит задержку в управление. Сама AMD для включения генерации кадров рекомендует как минимум исходные 55 FPS (которые могут быть получены и с использованием масштабирования). Можно использовать и более низкие значения, но при частоте рендеринга ниже 35–40 кадров в секунду генерация кадров особо не поможет: несмотря на повышение FPS, управление будет «кисельным», мешая нормальному игровому процессу.
Независимо от версии FSR, чем меньше входное разрешение — тем ниже качество итоговой картинки. И если при целевом 4К это не так заметно, то при 2K или Full HD пресет Performance выглядит уже не так хорошо. Старшие пресеты Balanced и Quality выдают картинку лучше, но вносят меньший вклад в повышение производительности — прирост кадровой частоты по сравнению с Performance снижается на 20–30%.
Заключение
Fidelity FX Super Resolution — серия технологий повышения производительности от компании AMD. Она конкурирует как с родоначальником подобных технологий NVIDIA DLSS, так и с более молодым аналогом от Intel под названием XeSS. В отличие от DLSS, FSR работает на гораздо более широком списке оборудования, что роднит ее с XeSS. Но технология от Intel не так распространена в играх, и еще не умеет работать с генерацией кадров — поэтому FSR тут пока впереди.
Первая версия FSR использовала пространственное масштабирование и не отличалась качеством, поэтому сегодня встречается редко. FSR 2 использует более качественное временное масштабирование, поэтому и по сей день остается наиболее универсальным вариантом для повышения производительности при минимальных потерях качества. FSR 3 предлагает максимальный в серии FPS, но взамен увеличивает задержку — впрочем, как и любые технологии с использованием генерации кадров.