Хуанг затащил! DLSS 5 не скам! Копите денег на новую видюху!

Хуанг затащил! DLSS 5 не скам! Копите денег на новую видюху!

Буквально вчера NVIDIA наконец‑то официально рассказала о том, как будет работать DLSS 5 - технология нейронного рендеринга. Но всё ли так хорошо, как поют "зелёные"?🤔

Кто не смотрел презентацию, может сначала глянуть её, а затем вернуться и дочитать пост.

опять эти умные азиаты...

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

И тут самое время написать “Я же говорил!”, но я не говорил - я писал свои рассуждения о DLSS 5 ещё до выхода официального видео от зелёных, и они оказались верными. Кто не читал - милости прошу сюда:

Теперь, когда зелёные выпустили видео, можно на их же примерах чуть дополнить тему и объяснить, почему эта технология - не скам, почему это не просто фильтр а‑ля Snapchat и почему это действительно очень крутой шаг в развитии игровой графики.

Совпадение?
Совпадение?

Два главных ингредиента DLSS 5

Хуанг затащил! DLSS 5 не скам! Копите денег на новую видюху!

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

Structure Intensity - отвечает за детализацию текстур.

Tone Intensity - отвечает за освещение и цвет.

И это всё! То есть слитая (ага, “слитая”, так мы и поверим) ранее пре‑версия DLSS 5, с которой энтузиасты уже вовсю наигрались, по сути ничем не отличается от финального продукта.

На скриншоте видны ещё какие‑то параметры - это уже вещи, так скажем, для оптимизации, а не для основной работы технологии. Их мы обсудим ниже.

Tone Intensity - освещение наше всё!

Хуанг затащил! DLSS 5 не скам! Копите денег на новую видюху!

Сначала разберём параметр 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‑шлемы? Именно там реализм играет ключевую роль.

Сейчас те же симуляторы стараются “давить” на механику - то есть все силы и ресурсы уходят на то, чтобы воссоздать реальный опыт: управление автомобилем, самолётом, поездом, техникой. Графика при этом играет пусть и важную, но всё же второстепенную роль.

А теперь, с появлением технологии нейронного рендеринга, симуляторы помимо реалистичного геймплея смогут радовать ещё и картинкой. Ну не прелесть ли?

Про них самых!

Хуанг затащил! DLSS 5 не скам! Копите денег на новую видюху!

Уже сейчас в комментариях пишут: “Да это же просто нейрофильтр поверх игры”, “Это нейрослоп!” - и это очень ошибочное мнение. Принцип действия у них действительно похож - обработка/переработка изображения - но технология реализации совершенно разная.

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

Чтобы было ещё понятнее - простой пример.

Есть нейросети вроде Kandinsky или Midjourney. Вы подсовываете им кадр(не важно чего, фото или скриншота) и пишете промт “сделай красиво!”. Нейросеть анализирует только данные исходного изображения и сопоставляет их со своей, так сказать, базой, после чего накручивает вам “красоту”. Да, результат может быть хорошим, но это просто картинка, придуманная нейросетью на основе вашей.

Она не знает: - какую камеру вы использовали, - был ли это реальный кадр или скриншот игры с ультрографикой, - какая была погода, - где находилось солнце, - какого размера дерево на заднем плане, - что за кусок здания торчит в углу кадра, и т.д. и т.п.

Она может лишь предположить - как человек, который смотрит на фото. Всё, что вне кадра, знает только тот, кто создавал этот кадр или принимал участие в его создании. И хорошо, когда это статичное изображение. А когда видео? Когда кадр меняется каждую секунду, нейросеть не успевает “угадывать”, что за объекты появляются в кадре, и порой рисует непонятные артефакты - то на фоне, то на лицах.

У DLSS 5 под “капотом” всё иначе. У нейронного рендеринга есть все параметры сцены: источники освещения, геометрия объектов, материалы, их свойства, их расположение в пространстве и так далее. То есть рендер понимает, как и из чего состоит сцена, и на основе этой информации рисует корректное освещение, цвета, тексуры, и выдаёт честный финальный результат.

А с помощью Tone Intensity разработчик может контролировать интенсивность обработки, тем самым оптимизировать весь процесс.

Магия вне Хогвартса, короче!

Вывод чуть не забыл...

Хуанг затащил! DLSS 5 не скам! Копите денег на новую видюху!

В реальности, конечно, всё будет не так идеально, как поют зелёные. Это не станет супер‑кнопкой “сделать красиво”, но это однозначно интересный шаг в сторону полноценного нейронного рендера, который в будущем должен будет полностью и в реальном времени воссоздавать желаемую картину - хоть реализм, хоть Pixar, на выбор разработчика.

Но это уже будущее. А нам ещё как‑то нужно пережить восстание машин…

P.S. Если кто-то напишет что это нейро-текст, тому всё лицо поправим DLSS-ом!

194
127
46
8
4
3
3
1
1
1