Хуанг затащил! DLSS 5 не скам! Копите денег на новую видюху!
Буквально вчера NVIDIA наконец‑то официально рассказала о том, как будет работать DLSS 5 - технология нейронного рендеринга. Но всё ли так хорошо, как поют "зелёные"?🤔
Кто не смотрел презентацию, может сначала глянуть её, а затем вернуться и дочитать пост.
Если вы не очень понимаете буржуйский и в целом далеки от темы компьютерной графики, а хотелось бы простым и понятным языком - не переключаемся, сейчас всё расскажу.
И тут самое время написать “Я же говорил!”, но я не говорил - я писал свои рассуждения о DLSS 5 ещё до выхода официального видео от зелёных, и они оказались верными. Кто не читал - милости прошу сюда:
Теперь, когда зелёные выпустили видео, можно на их же примерах чуть дополнить тему и объяснить, почему эта технология - не скам, почему это не просто фильтр а‑ля Snapchat и почему это действительно очень крутой шаг в развитии игровой графики.
Два главных ингредиента DLSS 5
То, что лично мне нравится в реализации DLSS 5 - это понятный интерфейс и понятные параметры. Структура настройки воздействия нейронного рендеринга будет очень привычна как для технарей, так и для художников, работающих с графикой. Сейчас всё глобально состоит из двух параметров:
Structure Intensity - отвечает за детализацию текстур.
Tone Intensity - отвечает за освещение и цвет.
И это всё! То есть слитая (ага, “слитая”, так мы и поверим) ранее пре‑версия DLSS 5, с которой энтузиасты уже вовсю наигрались, по сути ничем не отличается от финального продукта.
На скриншоте видны ещё какие‑то параметры - это уже вещи, так скажем, для оптимизации, а не для основной работы технологии. Их мы обсудим ниже.
Tone Intensity - освещение наше всё!
Сначала разберём параметр Tone Intensity - “тоновая интенсивность”. Почему именно его? Потому что правильный свет, а значит и тени, которые он создаёт - ключ к реализму. Это то, что разработчики игр одновременно любят и ненавидят.
Свет в играх - это особый вид искусства, которому уделяют огромное внимание. Не зря существует отдельная специальность - художник по освещению. Его задача: правильно выбрать источник света, грамотно расставить его по локациям или сценам, подобрать температуру, интенсивность и так далее.
Но “правильно” - это совсем не значит, что если вы воссоздадите свою комнату в 3D, расставите все модели, которые точно копируют реальные предметы, и поставите источники света в тех же местах, то цифровая версия будет выглядеть так же.
Проблема в том, что освещение в играх работает не по прямым законам физики, а через математические модели. В реальной жизни свет переотражается от объектов бесконечное количество раз, пока полностью не поглотится окружающей средой. В компьютерной графике (и в кино, и в играх) симулировать бесконечность невозможно. Поэтому даже алгоритмы трассировки лучей (Ray Tracing) искусственно ограничивают количество переотражений - обычно от 2 до 8, чтобы получить фотореалистичную картинку.
А мы же знаем, сколько FPS съедает включение лучей. Кто не знает - отвечу просто: много.
Если убрать Ray Tracing, остаётся растровое (растеризованное) освещение - то, что мы наблюдали в играх до появления RT. Оно тоже делится на множество видов, но это опустим и перейдём к главному.
Tone Intensity - попытка компенсировать ограниченные переотражения. Идея в том, что каждый кадр наполняется максимально корректным освещением. Понятно, что совершенсту нет предела, и текущая модель работает на основе обученной нейросети, которая может где‑то слегка ошибаться(не факт). Но она точно справляется лучше, чем растровое освещение и все те “костыли”, которые годами придумывали разработчики, чтобы добиться реализма через свет.
Structure Intensity - навалим рандома!
Если Tone Intensity - это основа реализма, то Structure Intensity - это уже настоящее фаталити.
В современных 3D‑играх, помимо ограничений на количество полигонов моделей(а именно на них строятся игровые миры), есть ещё и ограничения на качество текстур. То есть вы не можете просто взять 8K‑текстуры, которые нафоткали в реальном мире, и запихнуть их в игру. Их как минимум нужно оптимизировать, а как максимум - применять точечно, чаще всего на персонажах. Почему так?
Во‑первых: если применять 8K‑текстуры повсеместно, ваша игра в финальном билде, со всеми сжатиями, будет весить сотни гигабайтов. А если взять игру уровня GTA V(даже не RDR2), эта цифра легко вырастет до терабайтов. Хотите игры такого размера только за счёт текстур? И это мы ещё не берём в расчёт тот факт, что высокополигональные модели тоже весят больше.
Во‑вторых: ультра‑текстуры забивают не только место на диске, но и видеопамять. Все ваши GeForce на 16 ГБ идут лесом. Готовьтесь сразу покупать видеокарты минимум на 32 ГБ, а лучше сразу 48 и выше.
Structure Intensity решает вопрос детализации текстур без необходимости пихать в игру сверхкачественные текстуры. И сразу хочу отметить: это не значит, что в игре будут “ущербные” текстуры. Это значит, что их качество будет доведено до разумного уровня - чтобы всё выглядело хорошо само по себе - а дальше уже нейронный рендеринг через Structure Intensity добивает картинку до фотореализма, без необходимости запихивать в игру фотореалистичные текстуры и бессмысленно раздувать её вес.
А ещё один очень интересный момент, который Nvidia пока не озвучила, но он в теории его можно реализовать - это рандомизация текстур. Да, такой приём не подходит для значимых объектов, типа персонажи или какие-то объекты которые игрок видит постоянно, но вполне прекрасно подойдёт для тех же листьев, земли, травы и кучи других мелких деталей, которые являются просто фоном, но их рандомизация добавит разнообразия миру.
Снимаем маски господа разработчики!
Developer Masking - это именно та нужная вещь, которая в итоге замыкает круг, как в одной известной песне, и решает вопрос оптимизации.
И сейчас всем комментаторам, которые постоянно ноют про то, что в играх нет оптимизации, а с DLSS 5 разработчики якобы вообще на неё забьют - надаём по обеим щёкам.
Все нейронные фишки сейчас обрабатываются тензорными ядрами видеокарт NVIDIA. Если взять и выкрутить параметры Structure Intensity и Tone Intensity на весь кадр, то в текущих реалиях, когда тензорные ядра ограничены и не являются основополагающими, мы получим падение производительности вплоть до 50%. А это не есть хорошо. Какой ПК‑боярин захочет играть с производительностью консоли? 30 FPS оставьте себе, консольные холопы!
И вот тут на помощь приходят “маски”, “слои”, “группы” - называйте как хотите. NVIDIA назвала это developer masking.
Суть функции проста: разработчики объединяют нужные объекты или даже части объектов в группы и направляют интенсивность нейрорендеринга туда, где это действительно нужно.
Пример: Есть дерево. Оно высокое. Игрок большую часть времени видит только ствол - он постоянно в кадре. А листья - почти никогда.
Разработчик делает маску:
- ствол - обработка нейронным рендерингом на 50%,
- крона - на 0%.
И в рамках этих же масок можно регулировать интенсивность как обработки текстур, так и освещения - учитывая, какая часть объекта выглядит “слабой” в общей картине игры.
Именно так достигается баланс:
- картинка улучшается там, где это важно,
- производительность не падает,
- тензорные ядра не перегружаются,
- оптимизация остаётся на месте, а не улетает в окно.
VR сообщество уже пускает слюни!
Как говорит сама NVIDIA, до фотореализма ещё далеко, но направление выбрано: реалтайм‑генерация - это будущее! И будущее не только для привычных нам игр, но и для всей индустрии развлечений. Вы же не забыли, что ещё существуют симуляторы и VR/AR‑шлемы? Именно там реализм играет ключевую роль.
Сейчас те же симуляторы стараются “давить” на механику - то есть все силы и ресурсы уходят на то, чтобы воссоздать реальный опыт: управление автомобилем, самолётом, поездом, техникой. Графика при этом играет пусть и важную, но всё же второстепенную роль.
А теперь, с появлением технологии нейронного рендеринга, симуляторы помимо реалистичного геймплея смогут радовать ещё и картинкой. Ну не прелесть ли?
Про них самых!
Уже сейчас в комментариях пишут: “Да это же просто нейрофильтр поверх игры”, “Это нейрослоп!” - и это очень ошибочное мнение. Принцип действия у них действительно похож - обработка/переработка изображения - но технология реализации совершенно разная.
Технология нейронного рендеринга считывает параметры сцены из исходных данных и воссоздаёт корректное освещение с учётом этих параметров. Тогда как фильтр, в привычном понимании, - это обработка поверх финального кадра, которая берёт информацию только из готовой картинки, а не из промежуточных данных рендера.
Чтобы было ещё понятнее - простой пример.
Есть нейросети вроде Kandinsky или Midjourney. Вы подсовываете им кадр(не важно чего, фото или скриншота) и пишете промт “сделай красиво!”. Нейросеть анализирует только данные исходного изображения и сопоставляет их со своей, так сказать, базой, после чего накручивает вам “красоту”. Да, результат может быть хорошим, но это просто картинка, придуманная нейросетью на основе вашей.
Она не знает: - какую камеру вы использовали, - был ли это реальный кадр или скриншот игры с ультрографикой, - какая была погода, - где находилось солнце, - какого размера дерево на заднем плане, - что за кусок здания торчит в углу кадра, и т.д. и т.п.
Она может лишь предположить - как человек, который смотрит на фото. Всё, что вне кадра, знает только тот, кто создавал этот кадр или принимал участие в его создании. И хорошо, когда это статичное изображение. А когда видео? Когда кадр меняется каждую секунду, нейросеть не успевает “угадывать”, что за объекты появляются в кадре, и порой рисует непонятные артефакты - то на фоне, то на лицах.
У DLSS 5 под “капотом” всё иначе. У нейронного рендеринга есть все параметры сцены: источники освещения, геометрия объектов, материалы, их свойства, их расположение в пространстве и так далее. То есть рендер понимает, как и из чего состоит сцена, и на основе этой информации рисует корректное освещение, цвета, тексуры, и выдаёт честный финальный результат.
А с помощью Tone Intensity разработчик может контролировать интенсивность обработки, тем самым оптимизировать весь процесс.
Магия вне Хогвартса, короче!
Вывод чуть не забыл...
В реальности, конечно, всё будет не так идеально, как поют зелёные. Это не станет супер‑кнопкой “сделать красиво”, но это однозначно интересный шаг в сторону полноценного нейронного рендера, который в будущем должен будет полностью и в реальном времени воссоздавать желаемую картину - хоть реализм, хоть Pixar, на выбор разработчика.
Но это уже будущее. А нам ещё как‑то нужно пережить восстание машин…
P.S. Если кто-то напишет что это нейро-текст, тому всё лицо поправим DLSS-ом!