Про технологию нейронного сжатия текстур NVIDIA

Про технологию нейронного сжатия текстур NVIDIA

Inno3D в пресс-релизе обмолвилась про какую-то технологию нейронного рендеринга от NVIDIA, которую покажут на CES. И тут я наткнулся на научную публикацию NVIDIA опубликованную в мае 2023 года, — «Random-Access Neural Compression of Material Textures», посвященное сжатию текстур с помощью нейросетей, и вот что кратко в ней предлагается, если простым языком:

  • В движок игры внедряется небольшая нейронная сеть. В процессе разработки она обучается на разных текстурах и материалах. Возможно это будет плагин к Unreal или Unity.
  • Текстуры заменяются на маленькие сетки, каждая ячейка которых содержит информацию для нейронной сети, о том как должна выглядеть текстура. Например, текстуру 4096×4096 заменяют на сетку в 256×256. В эту сетку влезают также все нормали, roughness, diffuse, AO, displacement, когда при обычном методе хранения текстур они хранятся отдельно.
  • В процессе игры нейронная сеть на лету из 256×256 сеток делает 4096×4096 текстуры, исходя из информации, находящейся в ячейках, и проведенного обучения. Экономия памяти достигается тем, что все текстуры хранятся в памяти в качестве 256×256 сеток, а их декомпрессия происходит только при необходимости и попиксельно, — только для тех объектов, которые находятся на экране.

Плюсы:

  • Текстуры занимают в разы меньше места: 4K текстура обычно занимает 16-32Мб, а с предлагаемым методом всего 3.8Мб.
  • Из этой маленькой 256×256 сетки можно сделать даже очень большую текстуру, например 8К и 16К, и показывать ее игроку на близких объектах, то есть используя меньший объем памяти можно получить улучшение качества текстур.
  • Технология гибко настраивается, например если 16К текстуры не нужны, то их можно не использовать, и тем самым снизить нагрузку на видеокарту.

Минусы:

  • Нейронная декомпрессия текстур на лету повышает нагрузку на видеокарту. Ко времени фреймтайма добавляется 1.12-1.92мс на RTX 4090. Обычный же метод отнимает всего 0.49мс, что в два-четыре раза быстрее. На слабых видеокартах это будет еще сильнее выражено.
  • Анизотропная/трилинейная фильтрация при таком методе не поддерживается, и если их внедрять отдельно, то это повысит нагрузку на видеокарту.
  • Стохастическая фильтрация текстур, используемая в данном методе, вызывает шум, для того чтобы скрыть который, может понадобиться DLSS, то есть в нативе не поиграешь.
  • Нельзя добавить поддержку на уровне драйвера, нужна интеграция на уровне движка игры.
  • Все текстуры, их нормали, roughness карты, и т.д. должны быть одного размера для обучения нейросети.
  • Обучение нейросети проводится для каждой игры отдельно и занимает время разработки.

Это не значит что покажут именно эту технологию, тем более что с момента публикации прошел всего год.

Но как вариант, вдруг NVIDIA анонсирует RTX5000 серию со специальными блоками, ускоряющими нейронную декомпрессию текстур, и тем самым скажет что 8ГБ памяти в 2025 это не только нормально, но и даже хорошо?

Поживем-увидим, пара недель осталась.

3737
33
22
78 комментариев

Скоро фанатики будут бегать и доказывать что тут качество еще лучше, чем в нативе (как с длсс).

16
4
2

А другие фанатики будут бегать и орать что теустурки ненастоящие

34

Не нужно быть фанатиком, чтобы доказывать то, что уже доказано сто раз.

16
1

потом амуде сделает херовую копию и все остальные начнут яростно дрочить рассказывая какие амд молодцы

3
1
1

Так у длсс качество то и лучше чем в нативе, без шуток

1

Не совсем понятная логика - с одной стороны, уменьшается требование к объёму видеопамяти, что хорошо для видеокарт среднего-низкого диапазона, с другой стороны в разы увеличивается время подготовки кадра, что критично для средних и слабых видюх!

Т.е. условным 5090/5080 это не нужно, т.к. у них много видеопамяти на борту, а условные 5070/5060 не вывезут из-за более низкой производительности! 🤔

9

Уменьшиться вес игры. А так минусы перевешивают все плюсы.

3