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

Что такое DLSS — и как эта технология улучшает производительность в играх

Разбираем принцип работы самого эффективного способа апскейлинга.

Скриншот: игра Red Dead Redemption 2 / Rockstar Games

Один из главных технологических трендов игровой индустрии сегодня — улучшение картинки без ущерба для производительности. Разные компании подходят к этому по-разному. NVIDIA добавляет в видеокарты специальные вычислительные блоки и улучшает изображение при помощи нейросетей. AMD действует более консервативно и использует универсальные алгоритмы, доступные на всех видеокартах.

Сегодня технологии апскейлинга вроде DLSS стали нормой для актуальных игр. Более того, некоторые разработчики открыто говорят, что рассчитывают на подобные системы при разработке игр. Например, создатели Remnant 2 ещё до релиза признались, что делали игру с прицелом на апскейлинг. Из-за этого игроки начали переживать, что графика становится всё более искусственной, а разработчики всё хуже оптимизируют свои проекты.

Редакция «Геймдев» Skillbox Media рассказывает, что такое DLSS и как устроен этот самый популярный алгоритм апскейлинга. Но перед тем, как перейти к самой технологии, сперва следует пояснить, что же такое этот апскейлинг в широком смысле слова.

Содержание

Подписывайтесь на наш телеграм-канал «Чекпоинт». Это уютное место, в котором мы рассказываем об играх и о том, как они создаются, а также делимся полезными советами разработчиков и пишем о важных обновлениях популярного софта. Комментарии открыты: вы можете предложить идею для нового текста или просто обсудить всё, что связано с геймдевом.

Что такое апскейлинг и сглаживание

DLSS — это именно что один из вариантов апскейлинга. Апскейлинг же сам по себе — это увеличение разрешения исходной картинки.

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

В некоторых современных играх почти невозможно добиться высокой кадровой частоты при большом разрешении без DLSS или FSR
Скриншот: игра Alan Wake 2 / Remedy

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

Самый простой способ избавиться от алиасинга — «замазать» все контрастные участки изображения промежуточными цветами. Такие алгоритмы сглаживания называются постпроцессинговыми. Некоторые из них, такие как FXAA, можно до сих пор встретить в играх. Их основное преимущество в низкой нагрузке на систему, которой почти не нужно дополнительно обрабатывать изображение. Из-за этого частота кадров почти не падает.

Но за такую эффективность приходится платить качеством. Постпроцессинговые типы сглаживания неизбежно сглаживают всё изображение, делая его мыльным. Для более качественного результата алгоритму нужна информация о нюансах сцены: расположении объектов, их отдалении друг от друга и так далее.

Некоторые типы постпроцессингового сглаживания устроены изощрённо. MLAA, к примеру, сглаживает границы объектов в зависимости от того, какую фигуру они образуют. Таким образом, система проигнорирует прямую контрастную линию, и мыла на экране будет меньше. Это не гарантирует высокое качество изображения, но в некоторых случаях выглядит лучше, чем FXAA
Источник: Codeproject.com.
Инфографика: Майя Мальгина для Skillbox Media

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

SSAA сегодня почти не встретить в играх. Ему на смену пришли другие алгоритмы от NVIDIA: DSR и DLDSR. В их основе лежит тот же принцип, но для разгрузки системы используются тензорные ядра. Из-за этого частота кадров в игре падает не так сильно
Изображение: Digital Foundry / YouTube

Есть и более продвинутые системы. Например, MSAA предварительно определяет границы объектов и рендерит в повышенном разрешении только их. В результате алгоритм эффективно сглаживает отдельные участки сцены, но при этом тратит меньше ресурсов видеокарты. Впрочем, с пикселями внутри объектов MSAA не взаимодействует, что также делает его неидеальным.

Что такое темпоральное сглаживание

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

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

TAA хорошо справляется с большинством «лесенок» на экране, но делает картинку чуть более размытой
Изображение: игра Fallout 4 / Bethesda Game Studios / Источник

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

Для решения этих проблем разработчики используют эвристические алгоритмы. Так называют методики, которые не гарантируют успех, но чаще всего справляются с задачей. Благодаря им TAA и прочие похожие технологии избавились от многих визуальных огрехов. Но не от всех.

Что такое темпоральный апскейлинг

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

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

Сравнение исходного изображения, TAAU, а также решения от «Фейсбука»*. Заметно, что кадр с TAAU существенно потерял в деталях. Справедливости ради, исходное изображение — экстремальный вариант, и в более реалистичных условиях алгоритм справляется не так плохо
Изображение: VentureBeat

Со временем механизмы временного апскейлинга становились лучше. Так, в середине 2010-х годов на консолях начали использовать техники шахматного рендеринга. Каждый кадр рендерится в половинном разрешении от желаемого по принципу шахматной доски: первый кадр — «чёрные» клетки, второй — «белые», затем опять «чёрные» и так далее. Пользователь же видит актуальный кадр, наложенный на предыдущий, и итоговое разрешение получается выше.

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

Сравнение изображения в нативных 4К (справа) с «шахматным» (слева). Разница заметна: на правом кадре кожа более детализированная, а фон шумит меньше. Но и шахматный рендеринг со своей задачей справляется неплохо
Изображение: Digital Foundry / YouTube

Что такое DLSS

В 2018 году NVIDIA предложила иной способ обойти проблему с качеством изображения. Компания решила использовать нейросети, чтобы лучше объединять кадры низкого разрешения в одно качественное. Принцип похож на TAAU, но для избавления от артефактов используются не эвристические алгоритмы, а заранее подготовленная нейросеть. К тому же в первой версии приоритет отдавался сглаживанию: сначала изображения в низком разрешении совмещались по принципу TAA, а затем картинку растягивали до нужных размеров и избавлялись от артефактов при помощи нейросети.

Это стало возможным благодаря тому, что в новых на тот момент видеокартах RTX 2000-й серии появились отдельные тензорные ядра для вычислений, связанных с машинным обучением.

Инфографика: Майя Мальгина для Skillbox Media

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

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

Мы объясняем принцип работы нейросети очень поверхностно, чтобы было проще уловить суть процесса и важность тензорных ядер в работе.

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

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

По заверениям NVIDIA, на обработку одного кадра у тензорных ядер уходит всего полторы миллисекунды. Получается простая арифметика. Допустим, игра ровно шла в 30 FPS, то есть на каждый кадр выделялось по 32 мс. Если мы снизим разрешение два раза, то сократим время на кадр до 16 мс. Добавляем к этому 1,5 мс для работы тензорных ядер и получаем существенный прирост фреймрейта — 17,5 мс, то есть около 57 кадров в секунду
Изображение: игра Call of Duty

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

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

Что такое DLSS 2.0

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

Нейросеть же по-прежнему отвечает за оптимальный способ наложения и избавления от неизбежных графических артефактов. Иными словами, DLSS 2.0 стал полноценным технологически продвинутым аналогом TAAU. У такого подхода есть большое преимущество: системе не приходится выдумывать информацию, ведь она действительно содержится в разных кадрах низкого разрешения.

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

Это не преувеличение. Изображение с DLSS (левый кадр) иногда может на равных конкурировать с нативным разрешением (справа)
Изображение: Digital Foundry / YouTube

Со временем DLSS развивался, но основной принцип остаётся неизменным до сих пор. Даже актуальная версия 3.5 — это попросту маркетинговая уловка. Апскейлинг в новой итерации работает так же, как и в DLSS 2.0. Просто к нему добавилась отдельная новая технология генерации кадров, но сам принцип остался прежним.

* * *

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

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


* Решением суда запрещена «деятельность компании Meta Platforms Inc. по реализации продуктов — социальных сетей Facebook и Instagram на территории Российской Федерации по основаниям осуществления экстремистской деятельности».

Попробуйте новую профессию в геймдеве — бесплатно

Доступ к курсам за 0 р.

Я не знаю, с чего начать
Кто вы в мире геймдева? Узнайте на бесплатном курсе ➞
Вы на практике попробуете 3 профессии: геймдизайнера, 2D-художника и разработчика на Unity. Создадите свою первую игру в стиле Mario. Подробности — по клику.
Узнать больше
Понравилась статья?
Да

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

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