DLSS: история пластикового мира Хуанга.
С чего все начиналось
В 2018 году NVIDIA представила архитектуру Turing и серию RTX 20xx. На бумаге это было революцией: наконец-то киношная трассировка лучей, (которая использовалась в крупных 3D- проектах еще с девяностых годов, например, в мультфильме «История игрушек»), появилась и в играх, а также стала доступной для работы с графикой на ПК, а не на специальных серверах. Главной ставкой стали новый тип ядер — тензорные, и технология DLSS — первый нейросетевой апскейлинг (и одно из первых применений нейросетей для широких масс в истории в принципе), который обещал «бесплатную» производительность, добывая фпс из воздуха и не ухудшая картинку. На бумаге схема выглядела элегантно: видеокарта готовит кадр в пониженном разрешении, ИИ восстанавливает детали, игрок получает высокий FPS без просадок. На практике первая версия технологии провалилась.
Первый блин комом
DLSS 1.0 требовала индивидуального обучения нейросети под каждую игру. Процесс занимал недели, а результат выглядел как размытый скриншот с артефактами, мыльными краями и шлейфами за движущимися объектами. Поддержка ограничивалась парой десятков проектов, а в динамичных сценах картинка рассыпалась. Технологию мгновенно окрестили маркетинговым костылём, а тензорные ядра — бесполезным кремнием. Подливало масла в огонь и то, что задачах новое 20xx-поколение почти ничем не выделялось на фоне старой доброй «десятки», особенно флагмана в лице GTX 1080 Ti. На фоне этого NVIDIA пришлось признать очевидное: подход не масштабируется и не работает в реальных условиях.
Работа над ошибками
Но Хуанг не сдавался и не поставил крест на технологии. Перелом случился в 2020 году с выходом DLSS 2.0. Вместо ручного обучения под каждый тайтл компания выпустила универсальную модель, натренированную на кластерах DGX. Алгоритм начал использовать временные данные: векторы движения, глубину кадра и историю предыдущих изображений. Это резко повысило стабильность, убрало размытие и сделало картинку в верхних пресетах близкой к нативному разрешению. Список поддерживаемых игр вырос до сотен, а разработчики получили готовый плагин для Unreal и Unity. То, что считалось провалом, превратилось в главное конкурентное преимущество RTX на фоне AMD, у которых подобные технологии в те времена были в зачатке. Несмотря на все улучшения, у технологии оставался еще ряд проблем. Так, главной из них был гостинг (шлейф за движущимися объектами), мыло (особенно в низких разрешениях и пресетах) и исчезновение мелких деталей. Иногда даже было мерцание и нарушение яркости/контраста
Дальнейшие итерации закрепили статус технологии. DLSS 3.0 (2022) добавила генерацию кадров: нейросеть вставляет промежуточные изображения, фактически удваивая FPS. Цена вопроса — повышенная задержка ввода, которую компенсирует NVIDIA Reflex. Однако в первых версиях задержка все равно была существенной (но это уже другая история). DLSS 3.5 внедрила Ray Reconstruction, заменив традиционные денуазеры ИИ-моделью, что сделало трассировку чище, стабильнее и менее шумной даже на картах прошлых поколений. С выходом RTX 50xx и DLSS 4 алгоритм научился генерировать до трёх кадров на один отрендеренный, улучшил работу с мелкой геометрией и снизил латентность за счёт переработанного конвейера. Технология перестала быть опциональной «галочкой» в настройках графики. Позже появился и DLSS 4.5, который еще сильнее улучшил возможности предыдущей версии. В новых версиях DLSS полностью избавились от мерцания, нарушения яркости/контраста. Также почти исчез (особенно при использовании пресетов «Качество» и «Баланс» в высоких разрешениях), мыло и гостинг, сделав технологию одной из самых качественных у NVIDIA, доступной для широкого числа юзеров
Скрытая угроза
Однако далеко не все так хорошо, как может показаться на первый взгляд. Технологии DLSS зачастую называют «пластиковым миром Хуанга», и это неспроста. Дело в том, что после того, как технология была приведена в порядок после провальной версии 1.0 к вполне хорошей 2.0, а позже и к отличной версии 3.0, DLSS часто массово стал использоваться игроками, которые хотели поиграть в высоком разрешении на ультра-настройках, но на слабоватых для такого решение видеокартах. Казалось бы, отлично, но есть одна проблема: разработчики игр думали точно в таком же ключе, поэтому они буквально стали «забивать» на оптимизацию своих тайтлов. Если вспомнить старые игры, вышедшие до 2020-х годов, то они были потрясающе оптимизированы: запускались и на консолях, и на ПК (при условии адекватной связки видеокарты и монитора), занимали очень мало ресурсов, особенно видеопамяти. И это при том, что графика сейчас топчется на месте (сравните современные игры с третьим ведьмаком одиннадцатилетней давности), а раньше некстген наступал чуть ли не каждые пару лет (на картинка показано сравнение графики DMC 3 и 4, между которыми всего пара лет). С выходом стабильных версии DLSS разрабы стали рассуждать в ключе: «Зачем нам делать хорошую оптимизацию игры, если игрок сможет сделать это сам, поработав с парой настроек?»
Масло в огонь подливало и то, что после исправления всех косяков NVIDIA, сами игроки одни из первых массово стали использовать DLSS, в отличие от двух других спорных технологий видеокарт RTX: самой трассировки лучей (RT) и генератора кадров (FG). Это еще больше укрепило разработчиков в своем мнении. Многие современные игры (а точнее почти любой крупный релиз) на старте ужасен: экстремально высокое потребление видеопамяти, низкий фпс даже на флагманских видеокартах и другие проблемы кривой оптимизации. Cyberpunk 2077, The JEDI: Survivor, The Last of Us, Alan Wake 2… Это список можно продолжать еще долго. Сейчас многие разрабы нагло полагаются на первые патчи, забивая на релиз игры. Раньше такое было недопустимым, поскольку игры продавались на CD-дисках, и кривой порт мог обрушить продажи. Даже в эпоху массового внедрения HDD, а позже – и SSD дисков разработчики еще долгое время полировали игры, чтобы довести их до идеального состояния даже на старте и не разочаровать фанатов. Раньше важнее был клиент, а не деньги. Порой в данном ключе рассуждают даже разрабы игровых движков (привет UE 5), что также серьезно сказывается на возможности оптимизации самих игр, созданных с помощью таких движков.
А что на данный момент?
Сейчас же главной проблемой кривой оптимизации является то, что при плохой оптимизации критически важная для игры видеопамять забивается всяким мусором, из-за чего при превышении ее объема система выгружает игру в более медленную оперативную память, что вызывает статтеры (дерганье картинки и ее кратковременные замирания), что делает геймплей почти невозможным. Еще недавно, к примеру, потребление 10-11 гигабайт в 4К на ультра-настройках было предельным для самых тяжелых игр, сейчас же это почти недостижимый показатель для многих ААА-игр. Поэтому при игре в 4К почти все юзеры используют DLSS, многие – даже в 2К и Full-HD. Тут можно справедливо заметить, что не надо выкручивать все настройки игры на максимум, ставить трассировку лучей, чтобы забивать видеопамять и пр. Но вообще почему человек, который отдал, например, свыше 90-100к рублей за видеокарту, вообще должен быть чем-то ограничен? Если ему хочется играть на низких настройках, пусть берет более слабые видеокарты и мониторы с более низким разрешением. А ведь есть и прослойка тех людей, которые много работают и для этих целей берут 2К или даже 4К-монитор, а в редкие свободные минуты хотят играть с максимальной графикой в высоком разрешении… Еще и NVIDIA подливает масла в огонь, искусственно зажимая объем памяти для всех карт в своих разрешениях (кроме RTX 5070 Ti и 5090), либо заставляя делать компромиссный выбор между чипом и объемом VRAM, как в случае сравнения RTX 5060 Ti и 5070
Но и тут кроется еще одна проблема: несмотря на то, что к настоящему DLSS значительно улучшили, данная технология все равно является больше рекомендательной только для высоких разрешений. Поскольку при его использовании изображение восстанавливается из более низкого разрешения. Но чем выше базовое разрешение, тем выше и разрешение рендера. К примеру, при использовании пресета «Качество» в 4К изображение восстанавливается практически из 2К, что делает картинку очень качественной. Чем ниже разрешение монитора, тем ниже разрешение рендеринга. При этом, еще очень важен пресет DLSS. Для тех, кто не знает: у DLSS есть свой % рендеринга изображения от нативного. Высшим является пресет «Качество» — 67% от нативного изображения, потом идет «Баланс» — 58% от изначальной картинки и т.д. Поэтому, уже в 2К желательно использовать старшие пресеты, так как даже в новых версиях DLSS при слишком низком рендеринге будет наблюдаться гостинг и мыло
Реалии
На данный же момент NVIDIA активно развивает технологию. На данный момент при использовании DLSS картинка часто выглядит лучше нативной, так как DLSS использует встроенное нейросетевое сглаживание, которое почти не тратит ресурсы, (в отличие от локального сглаживания видеокарты (например, MSAA)), которое очень сильно «сжирает» ресурсы ГПУ, просаживая фпс. DLSS не только больше не вносит ухудшений картинки (при использовании нормального разрешения и пресета), но и улучшает ее, бонусом добавляя фпс. Недавно анонсировали еще и DLSS 5.0, взорвавший интернет мемами из-за того, что в анонсе он еще и улучшал качество моделек и текстур. В связи с чем аудитория уже заклеймила его нейрослопом. Поживем — увидим, тем более, что на презентации в демонстрационном ПК стояло аж две RTX 5090: одна отвечала за игру, другая — за DLSS. Ну, чисто бюджетная сборка, ничего дорогого, рядовой геймер уверенно потянет
И все-же, DLSS – это благо, которое позволило сделать геймплей на высоких разрешениях комфортным, или же убийца оптимизации и современного геймдева? Вопрос по-прежнему остается открытым…
Disclaimer: Все визуальные материалы в данной статье использованы в информационных целях. Права на изображения принадлежат их законным владельцам.