В последние годы наблюдается бум развития нейросетей. Не прошел он и мимо 3D-графики реального времени. Еще в 2018 году NVIDIA впервые применила нейросеть для работы масштабирования DLSS. А недавно компания представила целый комплекс новых графических технологий, основанных на нейросетевой обработке — Neural Rendering. Что это такое, зачем нужно и как работает?
Новый уровень графики
В начале века 3D-графика в играх развивалась стремительными темпами. Наиболее заметный скачок был совершен с появлением программируемых шейдеров. Благодаря им можно было реализовать сложные графические эффекты, которые ощутимо преображали картинку из набора плоских текстур.
Шейдеры совершенствовались из года в год, принося с собой возможность создавать новые и все более сложные эффекты. Но вычислительной мощности видеокарт не хватало, чтобы использовать все их возможности «по полной» в момент появления. К концу 2000-х развитие шейдеров замедлилось, а видеокарты стали наращивать «мускулы». Благодаря этому еще десяток лет графика развивалась — уже медленнее, но все так же планомерно.
С каждым новым поколением ГП разработчикам игр в реальном времени становились доступны эффекты, которые за несколько лет до этого можно было реализовать лишь со скоростью пары кадров в секунду. Поэтому, несмотря на отсутствие «прорывных» технологий, качество графики в играх понемногу росло. Но в 2018 году компания NVIDIA решила, что этот процесс слишком замедлился и настала пора революционных изменений. Тогда она представила технологию трассировки лучей в реальном времени и дебютную серию видеокарт RTX 2000, необходимую для ее работы. В последние шесть лет все усилия разработчиков игр направлены именно на трассировку. Но NVIDIA, кажется, нашла способ сделать графику в играх еще реалистичнее. В январе 2025 года вместе с видеокартами серии RTX 5000 она представила нейронные шейдеры, которые должны стать очередным «столпом» для развития графических технологий в ближайшее время.
Что такое Neural Rendering
Ключом к работе технологии масштабирования DLSS стали тензорные ядра, появившиеся в видеокартах серии RTX 2000. С течением времени она дорабатывалась, обеспечивая все более высокое качество. А когда появились линейка RTX 4000, тензорные ядра стали использоваться и для генерации кадров в DLSS 3.
В отличие от этих технологий, концепция Neural Rendering предлагает задействовать тензорные ядра не для всяческих улучшений уже отрендеренных кадров, а для использования подобных расчетов внутри самого конвейера рендеринга. Для этого NVIDIA предлагает следующие «трюки»:
RTX Neural Texture Compression
Сжатие текстур с помощью нейросети. Текстуры анализируются на предмет схожих или повторяющихся фрагментов, чтобы создать их представление в нейронном виде — своеобразный архив из кода. При том же качестве, что у традиционно сжатых, нейронные текстуры занимают до семи раз меньше памяти. Благодаря этому можно «поймать двух зайцев» одновременно: и качество самих текстур увеличить, и в небольшие объемы видеопамяти вписаться.
Использование нейросети для воспроизведения сложных поверхностей. Например, шелка, меха или фарфора. При их традиционной обработке с помощью универсальных шейдеров приходилось идти на компромиссы и упрощения, иначе производительность просаживалась довольно сильно. Тензорные ядра позволяют в несколько раз ускорить эти расчеты, благодаря чему подобные материалы можно сделать реалистичнее без пагубного влияния на FPS.
RTX Neural Radiance Cache
Трассировка пути — метод, позволяющий получить более реалистичное освещение, чем обычная трассировка лучей. Но он гораздо сильнее влияет на производительность, потому что видеокарте приходится просчитывать заметно большее количество переотражений лучей от разных поверхностей. Neural Radiance Cache — технология, призванная упростить трассировку пути для оборудования. При ее использовании только лишь пара отскоков лучей от поверхностей просчитывается RT-блоками. Дальнейший процесс возлагается на плечи нейросети. Она динамически обучается после первых «увиденных» отражений, чтобы просчитывать дальнейшие отскоки лучей самостоятельно.
Поддержка оборудованием
Главный плюс Neural Rendering в том, что это не проприетарная технология NVIDIA. Его компоненты станут доступны в ближайшем обновлении графического API DirectX в виде функции «Кооперативные векторы» (Cooperative Vectors). При разработке стандарта Microsoft проводила консультации не только с NVIDIA, но и с другими разработчиками графических процессоров для Windows — AMD, Intel и даже Qualcomm. Ожидается, что графика каждого из них будет совместима с Neural Rendering. Но пока нет точной информации, какие это будут поколения видеокарт — нынешние или будущие.
Что до NVIDIA, то функции Neural Rendering будут доступны для всех видеокарт семейства RTX — от 2000 до 5000 серии. Но нужно учитывать, что наиболее оптимизированной для нее будет только последняя линейка RTX 5000.
Только ее графические чипы имеют аппаратный планировщик AI Management Processor, который эффективно распределяет вычисления между универсальными шейдерными процессорами и тензорными ядрами.
У прошлых поколений графики NVIDIA такого планировщика нет, поэтому его функционал будет реализован программно. Вдобавок к этому, их возможности работы с нейронными шейдерами ограничены заметно меньшим темпом тензорных вычислений. У RTX 5000 за счет поддержки низкой точности FP4 он в два с лишним раза выше, чем у RTX 4000 и RTX 3000. А явный аутсайдер в этом плане — дебютная линейка RTX 2000, которая поддерживает лишь FP16.
Для эффективной работы нейронных шейдеров линейка RTX 5000 также обзавелась планировщиком переупорядочивания выполнения шейдеров второго поколения (Shader Execution Reordering, SER). Он перегруппировывает различные операции по типам, чтобы они выполнялись на шейдерных процессорах и тензорных ядрах более эффективно.
В линейке RTX 4000 этот планировщик тоже присутствует, но работает только с операциями для универсальных шейдерных процессоров. А вот в RTX 3000 и RTX 2000 похожего блока нет вовсе.
Если объединить совокупность всех ограничивающих факторов, то можно сказать следующее: чем новее поколение графического процессора RTX, тем быстрее оно будет работать с функциями Neural Rendering. Скорее всего, в случае со старыми видеокартами эта технология не раскроет всех своих преимуществ из-за слишком медленного темпа вычислений и программной реализации некоторых этапов.
Заключение
Neural Rendering — новая глава в развитии 3D-рендеринга реального времени. Его гибридный подход сочетает объединение традиционных шейдерных вычислений высокой точности (FP32) с работой локальных нейросетей, для которых подходят и вычисления низкой точности (FP4/FP8/FP16). За счет их помощи можно сократить потребление видеопамяти, улучшить качество текстур и сделать технологии трассировки менее затратными для оборудования.
Важно то, что благодаря функции Cooperative Vectors нейронный рендеринг станет стандартной возможностью API DirectX. Поэтому в будущем он будет работать не только на ГП NVIDIA с тензорными ядрами, но и на решениях от AMD, Intel и Qualcomm. Вполне возможно, что многие его функции будут работать и на уже существующем оборудовании. Например, в современных ГП Qualcomm Adreno для этой цели могут использоваться блоки FP16, которых вдвое больше, чем обычных FP32. А в линейке видеокарт AMD RX 7000 вычислительные блоки могут переключаться в режим матричного ускорения, которое как раз подходит для работы с нейронным рендерингом.
Однако стоит учитывать, что реализация нейронных шейдеров на графических процессорах, появившихся до концепции нейронного рендеринга, никогда не будет такой же быстрой, как на специально заточенных под это графических архитектурах — таких, как NVIDIA Blackwell в видеокартах RTX 5000. Поэтому рассчитывать на «магическое» повышение качества текстур и повсеместное внедрение трассировки пути в играх ближайшего будущего все-таки не стоит.
Как и в случае с трассировкой лучей в свое время, фишки нейронного рендеринга будут в первую очередь появляться в наиболее технологичных ААА-проектах. А вот станут ли они стандартными в течение нескольких лет учитывая то, что графические процессоры консолей текущего поколения для них не приспособлены — вопрос пока открытый.