Трассировка лучей и растрированная визуализация - объяснение

После запуска семейства графических процессоров Nvidia Turing в 2018 году в мире игр резко возросло количество дискуссий о функции, известной как «трассировка лучей». Совершенно новая серия видеокарт Nvidia «RTX» принесла в игры поддержку так называемой «трассировки лучей в реальном времени». Большинство людей не знали, что это за новая функция и почему Nvidia так сильно ее продвигали, но одновременно были взволнованы и заинтересованы в этой технологии. По словам Nvidia, трассировка лучей была настолько важной задачей, что они сочли необходимым включить ее прямо в название продуктов, которые они запускали. Новая серия видеокарт GeForce «RTX» заменила старую разновидность «GTX», когда дело дошло до топовых SKU, таких как 60,70,80 и -80Ti, которые обычно выпускает Nvidia.



Nvidia GeForce RTX 3080 - одна из самых быстрых видеокарт, поддерживающих трассировку лучей - Изображение: Nvidia

Серия видеокарт Nvidia RTX 2000 принесла с собой несколько изменений оборудования, которые позволили поддерживать трассировку лучей в играх. Новые видеокарты на основе Тьюринга содержат специальные ядра, предназначенные для этого процесса и известные как ядра RT. Ядра RT предназначались для обработки всех графических вычислений, которые требовались для обеспечения возможности трассировки лучей в реальном времени в играх. Nvidia также дополнила карты дополнительными ядрами CUDA, чтобы увеличить общую мощность карт, а также добавила новый набор ядер, известный как тензорные ядра. Эти ядра предназначались для помощи в приложениях глубокого обучения и ИИ, таких как новая форма техники масштабирования, известная как суперсэмплинг глубокого обучения. Мы уже подробно обсуждали Deep Learning Super Sampling или DLSS в Эта статья , где вы можете узнать больше о технике масштабирования на основе искусственного интеллекта.



Трассировка лучей не новость

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



Трассировка лучей уже используется в других областях, таких как фильмы - Изображение: Nvidia



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

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

Что такое растеризация?

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



Техника, которая в настоящее время используется для рендеринга, известна как «растеризация». В этом методе игровой код указывает графическому процессору рисовать трехмерную сцену с использованием многоугольников. Эти двухмерные фигуры (в основном треугольники) составляют большую часть визуальных элементов, отображаемых на экране. После того, как сцена нарисована, она переводится или «растрируется» в отдельные пиксели, которые затем обрабатываются специальным шейдером. Шейдер добавляет цвета, текстуры и световые эффекты для каждого пикселя для создания полностью визуализированного кадра. Эту технику нужно повторять примерно 30-60 раз в секунду, чтобы получить визуальные эффекты 30 или 60 кадров в секунду в играх.

Подробная информация о механизме растеризации - Изображение: Medium.com

Ограничения растеризации

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

Что такое трассировка лучей?

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

Ray Tracing обещает полностью пересмотреть визуальные эффекты в играх - Изображение: Nvidia

Механизм трассировки лучей

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

В Ray Tracing свет ведет себя в игре так же, как и в реальной жизни - Изображение: Nvidia

Различные формы трассировки лучей

Не все реализации трассировки лучей одинаковы. В различных играх, поддерживающих трассировку лучей, эта функция реализована по-своему. Разработчик игры должен увеличить или уменьшить сложность трассировки лучей в игре, чтобы игра обеспечивала идеальный баланс производительности и качества изображения. С 2020 года большинство игр, поддерживающих трассировку лучей, обычно используют трассировку лучей только для одного аспекта сцены, в отличие от рендеринга всей сцены с использованием самой трассировки лучей. Это возможно, но вычислительные затраты на трассировку лучей всей сцены астрономические по сравнению с другими подходами и, следовательно, не стоят усилий, по крайней мере, прямо сейчас. На момент написания в играх используются следующие различные реализации Ray Tracing:

  • Тени: Самая простая и наименее интенсивная реализация трассировки лучей, возможно, связана с тенями. Здесь трассировка лучей используется для идеальной визуализации теней в сцене на основе происхождения света от источника света и положения самого объекта. Этот метод наиболее заметно используется в «Shadow of the Tomb Raider» для создания более подробной карты теней, которая реагирует на изменения в окружающей среде вокруг объектов, которые создают тени. В частности, движение и угол наклона источника света теперь могут вызывать те же изменения в получаемых тенях, которые мы наблюдаем в реальной жизни.
  • Размышления: Отражения требуют больших вычислительных затрат для рендеринга с использованием трассировки лучей, однако отражения с трассировкой лучей выглядят феноменально в современных играх и, вероятно, являются наиболее заметным графическим улучшением, которое можно получить с помощью трассировки лучей. Отражения используют источник света в сцене для точной визуализации отражений от отражающих объектов, таких как стекло и вода. Одна из самых популярных игр, в которых используются отражения с трассировкой лучей, - «Control».
  • Окружающая окклюзия: Это также связано с тенями и более или менее связано с одним и тем же основным процессом. Ambient Occlusion использует трассировку лучей для прогнозирования угла и интенсивности теней на основе положения и размещения объектов в сцене. Если все сделано правильно, Ambient Occlusion может добавить в игру удивительные детали и реалистичность.
  • Глобальное освещение: Вероятно, наиболее ресурсоемкая форма реализации трассировки лучей в современных играх. Global Illumination использует трассировку лучей для точного изображения мирового освещения. Это обеспечивает гораздо более реалистичное ощущение освещения, когда оно включено, но также сильно снижает производительность из-за огромного количества обрабатываемых данных. «Metro Exodus» использует трассировку лучей, чтобы обеспечить более реалистичную форму глобального освещения.
  • Полная трассировка пути: Наконец, мы также наблюдаем появление некоторых игр, в которых полностью отслеживается путь, что по сути означает, что все отслеживается лучом. Конечно, эти игры несколько проще и меньше, чем другие игры, которые были более или менее AAA-играми от крупных компаний, но это не значит, что они не выглядят впечатляюще. Фактически, некоторые могут возразить, что эти игры с полной трассировкой пути выглядят лучше, чем все другие реализации трассировки лучей. «Minecraft RTX» и «Quake RTX» - два из названий, которые полностью отслеживаются и доступны на момент написания.

Отражения с трассировкой лучей могут быть самым приятным для глаз приложением трассировки лучей в играх - Изображение: Nvidia

Что мне нужно для трассировки лучей?

Как упоминалось ранее, трассировка лучей - это очень ресурсоемкая задача, поэтому для ее хорошей работы требуется определенно высокопроизводительное оборудование. На момент написания есть несколько видеокарт от AMD и Nvidia, которые поддерживают трассировку лучей с аппаратным ускорением. Даже консоли Sony и Microsoft поддерживают эту функцию. Это немного расширяет список поддерживаемого оборудования:

  • Nvidia GeForce RTX 2000 серии
  • Nvidia GeForce RTX 3000 серии
  • AMD Radeon RX 6000 серии
  • Microsoft Xbox серии X
  • Sony PlayStation 5

Имейте в виду, что если AMD обрабатывает трассировку лучей немного иначе, чем Nvidia, то при использовании карт AMD для трассировки лучей наблюдается несколько большее снижение производительности. Кроме того, если вы хотите испытать повышенную производительность с помощью суперсэмплирования Deep Learning, эта функция также доступна только на картах RTX от Nvidia. AMD предположительно работает над функцией DLSS для своих карт серии RX 6000, но в настоящее время она все еще находится в стадии разработки на момент написания статьи.

Nvidia также ввела термин «гига лучи», чтобы дать пользователям представление об относительных возможностях трассировки лучей ее графических карт RTX. Nvidia заявляет, что 5 гига-лучей в секунду - это минимальное количество виртуального света, идеально необходимое для полного освещения типичной комнаты в среде видеоигр. GeForce RTX 2070 предлагает 5 гига лучей в секунду, а RTX 2080 предлагает 8 гига лучей в секунду. RTX 2080Ti предлагает колоссальные 10 гига лучей / сек. Это несколько произвольная единица, поэтому ее следует использовать только для демонстрации ожидаемой относительной производительности.

Потеря производительности и DLSS

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

Конечно, Nvidia подумала об этой ситуации со снижением производительности, а также разработала новую технику компенсации, известную как Deep Learning Super Sampling. Этот метод под названием DLSS был выпущен вместе с серией Nvidia RTX 2000 еще в 2018 году. Мы уже подробно исследовали DLSS в Эта статья , но суть этой технологии заключается в том, что она визуализирует изображение с более низким разрешением, а затем разумно и методично масштабирует изображение, чтобы оно соответствовало выходному разрешению, чтобы обеспечить значительно более высокую производительность по сравнению с естественным рендерингом. DLSS - отличный механизм компенсации потери производительности при трассировке лучей, но его также можно использовать без трассировки лучей, чтобы обеспечить еще более высокую частоту кадров и гораздо лучший опыт.

Значительное повышение производительности при включении DLSS - Изображение: Nvidia

Самым большим преимуществом DLSS является то, что он использует глубокое обучение и искусственный интеллект для масштабирования изображения, так что разница в визуальной четкости между исходным и масштабированным изображением практически отсутствует. Nvidia использует ядра Tensor на своих картах серии RTX для ускорения процесса DLSS, чтобы вычисление масштабирования можно было выполнять в темпе рендеринга игры. Это поистине захватывающая технология, которую мы хотели бы видеть в дальнейшем развитии и улучшении, чем сейчас.

Будущее трассировки лучей

Трассировка лучей в играх только начинается, и мы можем с уверенностью сказать, что она останется. AMD только что выпустила первая линейка карт, поддерживающих полную трассировку лучей в реальном времени с серией RX 6000 , а PlayStation 5 и Xbox Series X также поддерживают трассировку лучей. Текущие препятствия, которые необходимо преодолеть, включают потерю производительности и небольшое количество поддерживающих ее игр. Текущие игры, поддерживающие трассировку лучей на момент написания, включают:

  • Среди зла
  • Battlefield V
  • Яркая память
  • Call of Duty: Modern Warfare (2019)
  • Call Of Duty: Black Ops Холодная война
  • Контроль
  • Crysis Remastered
  • Избавь нас на Луну
  • Fortnite
  • Призрачный бегун
  • Правосудие
  • Mechwarrior V: Наемники
  • Метро Исход
  • Шахтерское ремесло
  • Лунный клинок
  • Тыквенный Джек
  • Quake II RTX
  • Тень Расхитительницы гробниц
  • Оставайся в свете
  • Легион сторожевых псов
  • Вольфенштейн: Янгблад

Между тем, Nvidia подтвердила, что следующие игры также будут поддерживать трассировку лучей, как только они выйдут:

  • Атомное сердце
  • Cyberpunk 2077 (запуск)
  • Умирающий свет 2
  • Doom Eternal
  • Зарегистрирован (ноябрьское закрытое бета-тестирование)
  • JX3
  • Mortal Shell (ноябрь)
  • Наблюдатель: System Redux
  • Готов или нет (запуск в раннем доступе)
  • Ring Of Elysium (запуск)
  • Синхронизировано: Off-Planet
  • Ведьмак III
  • Вампир: Маскарад - Родословные 2
  • World Of Warcraft: Shadowlands (ноябрь)
  • Меч Сюань-Юань VII (запуск)

Предстоящие игры, поддерживающие как RTX, так и DLSS - Изображение: Nvidia

Хотя может показаться, что это не так много игр, это начало пути, в котором преобладающей формой рендеринга вполне может быть трассировка лучей. Что касается производительности, то действительно трудно предсказать, снизится ли немного производительность от трассировки лучей. Однако разумно ожидать, что DLSS станет лучше и предложит достаточную компенсацию за потерю производительности, вызванную включением трассировки лучей. На момент написания список игр, поддерживающих DLSS, никоим образом не является обширным, но это хорошее начало, учитывая, что Nvidia объявила о поддержке DLSS для нескольких будущих игр. Вот все игры, которые в настоящее время поддерживают Deep Learning Super Sampling:

  • Гимн
  • Battlefield V
  • Яркая память
  • Call Of Duty: Black Ops Холодная война
  • Контроль
  • Death Stranding
  • Избавь нас на Луну
  • F1 2020
  • Последняя фантазия XV
  • Fortnite
  • Призрачный бегун
  • Правосудие
  • Marvel's Avengers
  • Mechwarrior V: Наемники
  • Метро Исход
  • Шахтерское ремесло
  • Охотник на монстров: Мир
  • Тень Расхитительницы гробниц
  • Легион сторожевых псов
  • Wolfenstein Youngblood

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

  • Среди зла
  • Атомное сердце
  • Граница
  • Cyberpunk 2077 (запуск)
  • Edge Of Eternity (ноябрь)
  • JX3
  • Mortal Shell (ноябрь)
  • Mount & Blade II Bannerlord (ноябрь)
  • Готов или нет (запуск в раннем доступе)
  • Мусорщики
  • Вампир: Маскарад - Родословные 2
  • Меч Сюань-Юань VII (запуск)

DLSS в сочетании с трассировкой лучей, похоже, станет будущим игровой индустрии к 2020 году.

Список игр, поддерживающих DLSS 2.0, продолжает расти - Изображение: Nvidia

Заключение

Растеризация - это метод, который уже давно используется для преобразования двумерной плоскости многоугольников в трехмерное изображение на экране в играх. В 2018 году Nvidia представила серию видеокарт RTX 2000 с полной поддержкой трассировки лучей в реальном времени в играх, техники, которая использует сложные вычисления для отслеживания лучей света в сцене для создания точных изображений того, как свет будет взаимодействовать с объекты в сцене. Это привело к неожиданному шторму в мире игр, и вся индустрия сделала трассировку лучей своим основным направлением развития.

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

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