DLSS 1.0
DLSS 1.0 (она же Deep Learning Super Sampling первой ревизии, она же Сглаживание глубоким обучением, она же мыловарня Хуанга обыкновенная) — это эпохальная, революционная и абсолютно провальная попытка корпорации NVIDIA заставить нейросети рисовать графику в видеоиграх вместо видеокарты, породившая тонны лулзов, мыла, галлюцинаций и боли у первых владельцев видеокарт серии RTX 2000. Суть технологии заключалась в том, чтобы взять картинку в низком разрешении, скормить ее тензорным ядрам, чтобы те, покурив электронных грибов, выдали картинку в высоком разрешении, сэкономив тем самым драгоценные FPS. На бумаге это звучало как магия пришельцев, на деле же оказалось цифровым аналогом размазывания вазелина по монитору.
Лесенки на полигонах[править]
Чтобы осознать всю глубину глубин и ту бездну отчаяния, из которой родился DLSS 1.0, нужно вернуться к самым основам компьютерной графики, во времена, когда пиксели были большими, а деревья состояли из 3 полигонов. Как известно любому уважающему себя пекабоярину, монитор состоит из сетки пикселей. Когда видеокарта пытается нарисовать диагональную линию или край треугольника на этой квадратной сетке, неизбежно возникает он — великий и ужасный алиасинг. В народе это непотребство называют лесенки. Лесенки режут глаз, разрушают погружение и заставляют кровоточить сетчатку всякого графодрочера.
Веками индустрия боролась с этой напастью. Самым тупым, лобовым, но при этом самым качественным методом был суперсэмплинг, или SSAA. Идея проста как мычание: видеокарта рендерит картинку в разрешении в 2, в 4 или даже в 8 раз большем, чем разрешение твоего монитора, а потом сжимает ее обратно. Все лесенки сглаживаются, картинка становится кристально чистой, звенящей от резкости. Если у тебя монитор Full HD, то есть 1080p, который содержит в себе жалкие 2073600 пикселей, то при использовании 4-кратного SSAA твоей бедной видеокарте придется отрисовывать уже 8294400 пикселей для каждого кадра. А если ты мажор с 4K монитором, то умножай 8294400 еще на 4, и получишь астрономические 33177600 пикселей. Естественно, от таких нагрузок видеокарты начинали выть кулерами, плавить текстолит и просить пощады, выдавая слайд-шоу вместо плавного геймплея.
Поэтому хитрые разработчики придумали кучу других костылей разной степени паршивости: MSAA, FXAA, SMAA и, наконец, венец творения — TAA, или темпоральное сглаживание. TAA брало информацию не только из текущего кадра, но и из предыдущих, смешивая их. Лесенки пропадали, но появлялась другая беда — мыло в движении и гостинг, когда за бегущим персонажем тянулся полупрозрачный шлейф, словно он восстал из мертвых. Пекабояре страдали, но терпели, ибо альтернативой было возвращение к пиксельным зазубринам.
Пришествие Куртки[править]
И вот наступил 2018 год. На сцену выходит бессменный лидер зеленых Дженсен Хуанг в своей фирменной кожаной куртке и заявляет, что отныне мы будем играть не просто в полигоны, а с трассировкой лучей. Анонсируется серия видеокарт RTX 2000. Флагман RTX 2080 Ti стоит безумных денег, но обещает фотореалистичное освещение, отражения и тени. Хомячки визжат от восторга, пока не появляются первые тесты.
Оказывается, что эти самые хваленые лучи ставят на колени даже топовую RTX 2080 Ti. При попытке запустить игру в честном 4K с включенным Ray Tracing счетчик кадров падает до позорных 20 или 30 FPS. Это фиаско. Это провал. Продавать видеокарту за 1200 баксов, которая не тянет 60 кадров в секунду? Хуанг не мог такого допустить. Ему нужен был фокус, спасательный круг, магическая палочка, которая вернет заветные циферки счетчика кадров на приемлемый уровень.
Этой палочкой-выручалочкой и стал DLSS 1.0. Хуанг торжественно провозгласил, что отныне нам не нужно рендерить все 8294400 пикселей для 4K. Мы будем рендерить картинку в 1440p или даже в 1080p, а затем специальная нейросеть, обученная на могучем суперкомпьютере Saturn V, будет дорисовывать недостающие пиксели, делая картинку неотличимой от нативного 4K. Звучало это как пророчество из киберпанк-будущего. Люди верили. Люди хотели верить.
Как обучали франкенштейна[править]
Процесс создания этого нейросетевого чуда был эпичен. Нейросети скармливали обычный кадр в низком разрешении без всякого сглаживания. Затем ей показывали тот же самый кадр, но отрендеренный с идеальным 64-кратным суперсэмплингом. Идеальный, кристально чистый кадр, лишенный малейших изъянов. Нейросеть смотрела на эту красоту, сравнивала ее с мыльным обмылком низкого разрешения и пыталась понять, как из первого сделать второе. Она анализировала, сравнивала, ошибалась, снова анализировала в бесконечном цикле проб и ошибок, потребляя мегаватты электроэнергии на суперкомпьютере производительностью 4900 терафлопс. К слову, у среднестатистической RTX 3090 производительность всего около 35 терафлопс, так что масштаб вычислительных мощностей внушал благоговейный трепет.
И вот, натренировав этого электронного болвана, зеленые интегрировали полученную модель в драйвер видеокарты. Специальные тензорные ядра на архитектуре Turing должны были в реальном времени, за миллисекунды, применять полученные знания к кадру, который выдавал игровой движок, увеличивая его разрешение и сглаживая края.
Здесь кроется самый главный, монументальный и фатальный косяк DLSS 1.0. Эта технология была пространственным апскейлером. Это означает, что она брала только один текущий кадр. У нее не было вектора движения, у нее не было информации из прошлых кадров, как у TAA. Нейросеть пыталась выдумать новые детали, глядя лишь на один статичный слепок времени. По сути, она работала как гадалка с хрустальным шаром, пытаясь угадать, что должно быть там, где сейчас просто месиво из трех пикселей.
И вторая проблема, которая вбила гвоздь в крышку гроба первой версии: нейросеть нужно было обучать под каждую конкретную игру отдельно. Разработчики должны были собирать терабайты скриншотов из своей игры на разных локациях, при разном освещении, в разное время суток, с разной погодой и отправлять их Хуангу на сервера. А если локация была темной и контрастной? А если там был снег? Нейросеть сходила с ума, потому что не могла генерализовать знания. Она была узколобым идиотом-аутистом, который умел только то, что зазубрил.
Демо-версия Final Fantasy XV[править]
Конец 2018 года. Выходит первый бенчмарк, в котором можно пощупать DLSS 1.0 руками. Это была демка Final Fantasy XV. В ней Ноктис и его анимешные бойфренды катались на роскошной тачке по полям и лесам. Технологию разрешалось включать исключительно в разрешении 4K. И то, что предстало перед глазами пекабояр, заставило их челюсти пробить пол.
Если сравнить нативный 4K без сглаживания и 4K с включенным DLSS 1.0, разница была ошеломляющей. Нейронка филигранно вычищала все лесенки с кузова автомобиля, убирала мерцание листвы, делала волосы персонажей стабильными, а тонкие линии — непрерывными. Изображение становилось практически идеально гладким, словно его действительно отрендерили с многократным суперсэмплингом. И самое главное, видеокарта при этом вздыхала с облегчением, потому что реально рендерила картинку в меньшем разрешении, а fps взлетал до небес.
Это был триумф. Журналисты писали кипятком, блогеры снимали восторженные видео, доказывая, что технологии пришельцев уже здесь. Никто тогда не понимал, что это была тщательно отрежиссированная, вылизанная до блеска демка. Набор предсказуемых, заскриптованных сцен, на которых нейросеть натаскивали так долго и упорно, что она знала каждый пиксель наизусть.
А потом случился релиз.
Суровая реальность[править]
Когда DLSS 1.0 начал появляться в реальных играх с непредсказуемым геймплеем, магия испарилась, оставив после себя лишь горькое разочарование и запах горелого мыла.
Возьмем, к примеру, Metro Exodus. Постапокалиптическая Россия, снег, ржавые рельсы, мутанты и суровая атмосфера. Игрок включает заветный переключатель DLSS 1.0 в настройках, ожидая увидеть четкую 4K картинку с высоким FPS. Но вместо этого монитор заливает густым, вязким, непроглядным мылом. Картинка становится грязной. Появляется какая-то нездоровая излишняя резкость, странные контуры вокруг объектов.
Но самое страшное происходит в движении. Лесенки, от которых DLSS должен был избавлять, никуда не делись. Они танцуют джигу на проводах, на ветках голых деревьев, на краях разрушенных зданий. Если в бенчмарке Final Fantasy нейросеть идеально справлялась с алиасингом, то в Метро она капитулировала. Причина была банальна: обучение проводилось под конкретные сцены, а открытый мир Метро с его динамическим освещением и постоянной сменой обстановки ставил нейросеть в тупик.
Ситуация усугублялась, если попытаться использовать технологию в разрешениях ниже 4K. В 1440p картинка превращалась в многократно пережатый видеокал. Объекты обрастали жуткими артефактами. Если посмотреть на провода на фоне серого неба, можно было увидеть так называемые гало-эффекты, светящиеся ореолы вокруг контрастных границ. А если попытаться разглядеть надпись на здании вдали, то вместо букв была просто пиксельная каша. Нейросеть пыталась угадать форму букв, но не умела читать, поэтому рисовала абстрактный супрематизм.
В снежных локациях Метро, например, на уровне Волга, где царит высокий контраст между ярким снегом и темными объектами, DLSS 1.0 окончательно сходил с ума. Он пытался сделать более четкими объекты, которые специально были скрыты туманом, разрушая тем самым художественный замысел игры. Мелкие субпиксельные элементы деревьев и кустарников буквально распадались на отдельные, хаотично мерцающие пиксели, превращая пейзаж в эпилептический кошмар. Как такое непотребство могли пропустить отделы контроля качества и выкатить в релиз как киллер-фичу новых дорогих видеокарт — загадка, покрытая мраком.
В Shadow of the Tomb Raider ситуация была не лучше. Джунгли, лианы, пальмы — все это требует филигранной работы со сглаживанием, иначе экран превращается в зеленую рябящую кашу. Нативное 4K со сглаживанием SMAA T2X на RTX 3060 Ti выдавало жалкие 20 кадров в секунду. Включение DLSS 1.0 поднимало частоту до 38 FPS. Прирост почти в 2 раза! Но какой ценой?
Картинка с DLSS 1.0 становилась резкой, но эта резкость была больной, неестественной. Она состояла из переизбытка мелких контрастных артефактов, выглядящих как пиксельная помойка. Пальмы вдали превращались в кашу. Но настоящий шедевр нейросетевого искусства можно было наблюдать, взглянув на туман в горах. То, что в нативном разрешении было плавным, мягким и красивым атмосферным явлением, с DLSS 1.0 превращалось в жуткое месиво с бандингом, словно это картинка формата JPEG, пересохраненная 10 раз подряд с минимальным качеством. Нейросеть не понимала концепцию тумана. Она пыталась найти в нем четкие границы и дорисовать их, порождая артефакты, которые принято называть галлюцинациями.
Эта концепция галлюцинаций — самая смешная и одновременно пугающая часть DLSS 1.0. Нейросети говорили: Сделай красиво. И она делала, как умела. Она видела набор серых пикселей и решала, что это должен быть лист дерева, дорисовывая ему прожилки, которых там отродясь не было. В итоге на экране появлялись детали, физически отсутствующие в исходном рендере. Иногда это выглядело прикольно, но чаще всего это был визуальный мусор. Игровой интерфейс тоже страдал. Карта местности в Tomb Raider покрывалась странным пиксельным узором, шрифты в меню искажались. Нейросеть не делала различий между 3D-миром и 2D-интерфейсом, перемалывая все в своих тензорных жерновах. При этом эта хренотень жрала дополнительные 550 мегабайт видеопамяти и заставляла видеокарту потреблять на 20 ватт больше энергии просто на обслуживание тензорных ядер.
Почему это не работает сегодня[править]
Если сегодня, в 2026 году, какой-нибудь отчаянный некрофил решит запустить старую игру и посмотреть на DLSS 1.0 своими глазами на современной карточке вроде RTX 5070 Ti или даже RTX 4090, его ждет облом. Технология просто откажется работать. В меню Tomb Raider пункт будет серым и неактивным. В Final Fantasy игра выдаст ошибку инициализации библиотеки или просто покажет черный экран, полный графических артефактов, сквозь которые едва будут проглядывать элементы интерфейса.
Почему так? Дело в том, что библиотеки DLSS 1.0 были жестко завязаны на аппаратную архитектуру тензорных ядер поколения Turing (серия RTX 2000). С выходом Ampere (RTX 3000), Ada Lovelace (RTX 4000) и последующих поколений, архитектура тензорных блоков радикально менялась. Хуанг переписал железо, но никто не стал обновлять старые версии проприетарных библиотек под новые видеокарты. Зачем поддерживать мертвую, неудачную технологию, если можно заставить всех перейти на новые версии?
Поэтому единственный способ прикоснуться к этому куску истории — достать с пыльной полки какую-нибудь старушку RTX 3060 Ti (в ней архитектура тензорных ядер еще достаточно близка к Тьюрингу, чтобы хоть как-то переваривать код) и найти старые версии игр. Никаких актуальных патчей, только древние репаки с торрентов или откаты версий через консоль Steam. И тогда, сквозь слезы и боль, можно узреть, с какого дна начиналась революция нейросетевого апскейлинга.
А еще можно вспомнить, что создание 3D моделей — это та еще головная боль. Если ты вдруг решишь сам слепить кривую пальму, чтобы потом нейросеть Хуанга ее изуродовала, тебе придется пройти все круги ада моделирования. Блокинг, скульптинг, ретопология, UV-развертка, запекание карт, текстурирование. Это вам не кнопочку в игре нажать. Для таких мазохистов существуют целые школы, где учат RPG-механикам в обучении: качаешь ветки навыков (моделинг, текстуры, подача), собираешь билды, ходишь в рейды с другими студентами, чтобы собрать одну общую локацию под надзором злобных арт-директоров из индустрии. И все это без нудных лекций, только хардкорная практика, чтобы потом твой идеальный PBR-материал был размазан по экрану кривым алгоритмом масштабирования.
DLSS 1.9[править]
Хуанг и инженеры NVIDIA не были дураками. Они быстро поняли, что DLSS 1.0 — это тупик. Генерировать кадры из одного статичного изображения, да еще и обучать сеть под каждую игру отдельно — это путь в никуда. Изображение нестабильно, артефакты прут изо всех щелей, разработчики игр воют от необходимости слать терабайты данных на обучение.
И вот в августе 2019 года, меньше чем через год после релиза первой версии, выходит игра Control от студии Remedy. Это был бенчмарк для трассировки лучей, игра, в которой отражения в лужах и на стеклах стали важнее сюжета. И в этой игре появляется странная, экспериментальная версия сглаживания, которую в народе окрестили DLSS 1.9.
NVIDIA совершила финт ушами. Они выбросили на помойку пространственный апскейлинг. Они отказались от использования тензорных ядер! Да-да, технология, которая продавалась как киллер-фича новых блоков на GPU, в версии 1.9 работала на обычных, классических CUDA-ядрах. Но самое главное: они перешли на темпоральное масштабирование.
Темпоральное масштабирование означает, что алгоритм берет не один кадр, а несколько предыдущих. Он накапливает информацию о пикселях во времени. Он использует векторы движения от игрового движка, чтобы понимать, куда сместился каждый пиксель в новом кадре. И благодаря этому алгоритму уже не нужно ничего выдумывать и галлюцинировать. Ему нужно просто правильно совместить данные из прошлого с данными из настоящего.
Даже работая на обычных CUDA-ядрах и имея урезанный функционал нейросети, DLSS 1.9 порвал первую версию как тузик грелку. Если взять сверхнизкое базовое разрешение 720p и попытаться растянуть его до 1440p, разница была колоссальной. Там, где версия 1.0 в других играх выдавала бы месиво из пикселей, версия 1.9 в Control показывала четкие края столов в Федеральном Бюро Контроля, ровные шрифты на табличках и стабильные, не мерцающие жалюзи на окнах. Картинка перестала дрожать, ушел эффект кипящей воды на текстурах. Да, при таких агрессивных настройках (720p в 1440p) все равно оставались проблемы: мерцание тонких линий, нестабильная работа отражений на полу, смазывание деталей в движении. Но прогресс был монументальным. Стало кристально ясно: темпоральные данные — это ключ к спасению.
Рассвет DLSS 2.0[править]
В апреле 2020 года, спустя полгода после экспериментов в Control, состоялся релиз DLSS 2.0. Это был тот самый апскейлер, который индустрия заслуживала с самого начала. Инженеры взяли темпоральный подход из версии 1.9 и вернули его на мощные тензорные ядра.
Но самое главное достижение заключалось в другом. Нейросеть перестала быть аутистом, заучивающим одну игру. Ее обучили на гигантском, универсальном наборе данных. Ей показывали миллионы кадров из тысяч разных сцен, разных жанров, с разными движками и освещением. В результате была создана единая, универсальная модель, которая работала во всех играх одинаково хорошо. Разработчикам больше не нужно было собирать данные для обучения и ждать милости от суперкомпьютера NVIDIA. Они просто интегрировали плагин DLSS 2.0 в свой движок (что стало еще проще с появлением готовых модулей для Unreal Engine и Unity), передавали в него векторы движения, буферы глубины и цвет, и получали на выходе магию.
Ушли в прошлое жуткие галлюцинации. Ушла каша из пикселей на листве. Картинка стала настолько стабильной и четкой, что в некоторых случаях (режим Quality) она выглядела даже лучше нативного разрешения с TAA сглаживанием, потому что нейросеть умнее восстанавливала мелкие детали из субпиксельной информации прошлых кадров.
В этот момент DLSS 1.0 был официально признан мертвым. NVIDIA вычеркнула его из всех презентаций, постаралась стереть из памяти пекабояр этот позорный эпизод, как страшный сон. В некоторых старых играх разработчики выпустили патчи, заменяющие первую версию на вторую (или хотя бы обновляющие библиотеки), но большинство древних проектов так и остались памятниками первобытному нейросетевому хаосу.