Как работает трассировка лучей RX реального времени от Nvidia

Как работает трассировка лучей RX реального времени от Nvidia

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

Благодаря новому семейству GPU Turing, Nvidia стремится изменить все это благодаря развертыванию улучшенной поддержки в реальном времени RTX - высокопроизводительной библиотеки трассировки лучей, которая может выставлять подробные сцены по достойным игрокам кадрам. Мы углубимся в то, что сильно искажает трассировку лучей, что делает особенность NVidia RTX особенной, и как ее архитектура Turing еще больше ускоряет ее.

Как луч каста превращается в трассировку лучей

Теоретически, трассировка лучей включает в себя испускание лучей из каждого источника света в сцене, генерирование (обычно случайным образом) световых лучей от него и последующее за ними, когда они попадают и отражаются от поверхностей. На каждой поверхности свойства света сочетаются со свойствами материала, который он поражает, и, конечно, с углом, на котором он пересекается. Свет, который, возможно, подобрал другой цвет от отражения от объекта, затем прослеживается дальше, используя несколько лучей, которые имитируют отраженный свет - таким образом, трассировку лучей. Процесс отслеживания продолжается до тех пор, пока лучи не покинут сцену.

Хотя этот процесс велик в теории, он невероятно трудоемкий, поскольку большинство лучей не поражают ничего, что нас интересует, а другие лучи могут отскакивать почти бесконечно. Таким образом, решения в реальном мире делают умную оптимизацию. Они используют принцип света, называемый взаимностью, который утверждает, что обратный луч света работает так же, как оригинал, чтобы отливать лучи от виртуальной камеры вне сцены. Это означает, что только лучи, которые будут способствовать финальной сцене, будут отлиты, что значительно повысит эффективность. Затем эти лучи следуют (прослеживаются), когда они отскакивают, пока они не попадут на источник света или не покинут сцену. Даже когда они выходят из сцены, это может быть в точке, которая добавляет свет (например, небо), поэтому в любом случае количество освещенности, добавленное к каждой поверхности, попадает на сцену лучей. Программное обеспечение может также ограничить количество отражений, которое оно будет следовать за лучом, если легкий вклад, вероятно, будет небольшим.

Генеральный директор Nvidia Джен-Хсун Хуан объясняет, как легкая выпечка использовалась как более эффективная альтернатива некоторым возможностям, доступным при трассировке лучей.
Генеральный директор Nvidia Джен-Хсун Хуан объясняет, как легкая выпечка использовалась как более эффективная альтернатива некоторым возможностям, доступным при трассировке лучей.

Ray Casting Massively Processor Intensive

Общее количество лучей света, падающих на сцену, превышает то, что могут моделировать мощные компьютеры, используемые для трассировки лучей. Практически это означает, что трассировщики должны выбирать уровень качества, который определяет, сколько лучей выбрано из каждого пикселя сцены в разных направлениях. Затем, вычисляя, где каждый луч пересекает объект в сцене, он должен следить за некоторым количеством лучей от каждого пересечения до модели отраженного света. Вычисление этих пересечений относительно дорого. До недавнего времени он также ограничивался процессорами. Перемещение его на GPU, как и некоторые современные трассирующие лучи, способствовало значительному улучшению скорости, но результаты Голливуда по-прежнему требуют почти 10 часов на кадр на мини-суперкомпьютере высокого класса с несколькими GPU.

Поскольку трассировка лучей настолько интенсивен для процессора, интерактивные приложения, как игры, не могут использовать его, кроме как для создания привлекательных сцен заранее. Для рендеринга в режиме реального времени они полагаются на растеризацию, где поверхности каждого объекта затенены на основе их свойств материала и огни падают на них. Умные оптимизации, такие как легкая выпечка, позволяют игрокам делать снимки с высокой частотой кадров, но при этом выглядят великолепно. Но они падают, когда дело доходит до тонких взаимодействий, таких как рассеяние подповерхности. Таким образом, для окончательного воссоздания реалистичных сцен, целью всегда была трассировка лучей в реальном времени.

Nvidia RTX использует свои графические процессоры для ускорения трассировки лучей

Как работает трассировка лучей RX реального времени от Nvidia

RTX также полагается на новый новый модуль шумоподавления. Denoising очень важна при трассировке лучей, потому что вы можете использовать только ограниченное количество лучей из каждого пикселя в виртуальной камере. Поэтому, если вы не оставите трассировщик лучей достаточно длинным, чтобы заполнить сцену, у вас появилось много неприятных «лысинок» или «шум». Есть несколько отличных исследовательских проектов, которые помогают оптимизировать, какие лучи подаются, но вы все еще с большим шумом. Если этот шум может быть уменьшен отдельно, вы можете производить качественный вывод намного быстрее, чем если бы вам нужно было решить проблему, отправив это еще много лучей. Nvidia использует этот метод, чтобы быстрее создавать кадры. Вероятно, эта возможность основывается на работе Nvidia, работающей на AI, представленной на SIGGRAPH в прошлом году, так как ее выполнение в реальном времени в значительной степени зависит от тензорных ядер «AI» на своих графических процессорах Turing.

Пользовательские ядра RT облегчают трассировку лучей в реальном времени

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

Чтобы помочь решить эту проблему, Nvidia разработала специально созданные RT-ядра как часть своей архитектуры Тьюринга. Информация о них не так много, но, в частности, они позволяют намного быстрее вычислять пересечение луча с объектами, хранящимися в иерархии ограничения объема (BVH), популярной структурой данных для представления объектов в лучевых индикаторах ,

RTX подходит для потребительских графических процессоров с новыми картами Turing 20xx

Как работает трассировка лучей RX реального времени от Nvidia

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

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

Читать далее

Minecraft с функцией трассировки лучей теперь доступен для всех игроков с Windows 10
Minecraft с функцией трассировки лучей теперь доступен для всех игроков с Windows 10

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

Кто-то взломал трассировку лучей в SNES
Кто-то взломал трассировку лучей в SNES

Конечно же, игровая приставка из 90-х не могла поддерживать трассировку лучей, верно? Неправильно. Разработчик и инженер игры Бен Картер взломал трассировку лучей в Super NES с небольшой помощью платы разработчика FPGA.

NVIDIA: телефоны не готовы к трассировке лучей
NVIDIA: телефоны не готовы к трассировке лучей

JEN-HSUN HUANG не думает, что трассировка лучей является правильным подходит для мобильного телефона прямо сейчас и предпочитает сосредоточиться на GeForce сейчас.

Intel нанимает бывший исследователь NVIDIA, который помог развить трассировку Ray Tracing
Intel нанимает бывший исследователь NVIDIA, который помог развить трассировку Ray Tracing

Intel нанял один из архитекторов технологии RTX NVIDIA в качестве собственного VP графического исследования.