Трассировка пути и трассировка лучей, объяснение

Трассировка пути и трассировка лучей, объяснение Хостинг


Трассировка пути и трассировка лучей, объяснение

Каждое новое поколение видеокарт NVIDIA RTX становится быстрее в работе с трассировкой лучей, кроме того, компания разрабатывает технологии, которые позволяют повысить производительность, компенсируя потери от включения этого сложного метода рендеринга. Так в составе DLSS 3 используется не только умное масштабирование, но и генерация кадров. Похоже, можно двигаться дальше.

Вероятно, в последнем случае имеются такие преимущества архитектуры Ada Lovelace, как быстрый ускоритель потока, обеспечивающий работу генерации кадров. Предполагается, что с релизом NVIDIA Path Tracing SDK начнётся более широкая интеграция технологии в игры. Пока известно об интеграции в Cyberpunk 2077, наверняка потребуется время, чтобы технология появилась в большем количестве проектов, на данный момент нет информации о выпуске плагинов для популярных движков Unity и Unreal Engine.

https://youtube.com/watch?v=-IK3gVeFP4s%3F%26wmode%3Dopaque%26rel%3D0

NVIDIA Blog

VideoCardz

Этот материал написан посетителем сайта, и за него начислено вознаграждение.

Когда в 2018 году NVIDIA выпустила первые видеокарты с поддержкой трассировки лучей, многие скептики полагали, что технология не выстрелит. Предполагалось, что игровые студии не захотят напрягаться, но со временем Дженсену Хуангу удалось убедить сообщество в своей правоте, а в 2020 трассировка лучей появилась на игровых приставках нового поколения и видеокартах AMD. Всё это привело к росту стоимости графических чипов, а в последние годы технология прочно вошла в создание геймеров. По мнению экспертов, трассировка лучей не является истинным священным Граалем компьютерной графики. Существует более продвинутая технология под названием трассировка пути (path tracing). По сути, трассировка пути аналогична трассировке лучей, но выполняется рекурсивно и даёт более впечатляющие результаты.


Трассировка пути и трассировка лучей, объяснение

Трассировка пути и трассировка лучей, объяснение

Напомним, некоторое время назад CD Projekt Red выпустила обновление для Cyberpunk 2077 с поддержкой трассировки пути. Однако польская студия была не первой, кто поддержал новую технологию. Так, ранее были выпущены несколько игр с поддержкой трассировки пути, среди которых стоит упомянуть Portal RTX, Quake RTX и Metro Exodus Enhanced Edition. Основное отличие между трассировкой лучей и трассировкой пути заключается в последней стадии, которая называется пост-пересечение. Лучи сначала попадают в сцену через видовое окно. Каждый луч проверяется на пересечение со структурами BVH объектов в сцене и определяется, произошло попадание или промах. В трассировке лучей это последний шаг, за которым следуют необходимые расчёты и закрашивание пикселя. В трассировке пути пересечение повторяется несколько раз для сбора дополнительных данных перед возвратом результатов.

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

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


Трассировка пути и трассировка лучей, объяснение

Однако вряд ли можно будет увидеть сцены такой сложности в играх в ближайшее время — большинство из этих сцен едва достигают 30 кадров в секунду на GeForce RTX 3090

За последние несколько лет, если вы геймер, то, вероятно, довольно часто слышали термин «трассировка лучей». На самом деле, вы, вероятно, слышали об этом и раньше, но с появлением DirectX Ray-Tracing от Microsoft и бренда NVIDIA RTX трассировка лучей стала мейнстримом.


Трассировка пути и трассировка лучей, объяснение

Первоначальная концепция «трассировки лучей» для 3D-изображений была создана в 1969 году. Этот самый ранний алгоритм был очень простым и лишь приблизительным. На протяжении многих лет трассировка лучей претерпевала различные изменения, пока в 1986 году Джим Каджия не представил статью под названием «Уравнение рендеринга и его использование в компьютерной графике». Всего на семи страницах Каджия описал способ математического вычисления физических свойств света, и именно это открытие изменило 3D-рендеринг.


Трассировка пути и трассировка лучей, объяснение

Каджия описал свой метод как «трассировка пути». Это можно считать эволюцией простой трассировки лучей. Чтобы получить хорошее качество трассировки пути, нужно отбросить миллиарды лучей. До относительно недавнего времени этот подход считался совершенно непрактичным для рендеринга в реальном времени, но он использовался в фильмах и другой компьютерной графике, визуализируемой в автономном режиме, уже более 15 лет.

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

Читайте также:  Решение проблем с пингом: устранение неполадок подключения к шлюзу по умолчанию

Полное отслеживание пути в реальном времени не является чем-то новым; именно так работает Quake II RTX. Десять лет назад команда Otoy Brigade занималась отслеживанием пути с помощью программного обеспечения. Однако в обоих подходах использовалось множество компромиссов. У Brigade есть ограничения на моделируемое взаимодействие света, в то время как Quake II RTX включает только очень простые сцены с базовой геометрией и выполняет максимум два отражения на луч, используя всего пару источников света в каждой сцене.


Трассировка пути и трассировка лучей, объяснение

А вот компания NVIDIA хочет полноценную кинематографическую трассировку пути в реальном времени, и на GTC 2022 компания продемонстрировала нечто очень близкое к этому. Смешав свои RTXGI и RTXDI SDK в настраиваемый «исследовательский рендер», специалисты NVIDIA смогли добиться результатов, которые можно справедливо назвать «невероятными».

Это сцены, содержащие до трех миллиардов треугольников с полной трассировкой пути — без растеризации — визуализируются с «интерактивной» частотой кадров, несмотря на то, что средство визуализации использует до тридцати отражений на луч. Некоторые из этих примеров сцен содержат до пятисот тысяч «сетчатых источников света», по сути, отдельных полигонов, которые являются источниками света. Хотя эти сцены необязательно выглядят фотографическими, они на голову выше всего, что можно увидеть в видеоиграх в 2022 году.

https://youtube.com/watch?v=SjTx1U-EyQ8%3F%26wmode%3Dopaque

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

Изображение ниже иллюстрирует эффект усовершенствованного фильтра шумоподавления NVIDIA со сравнением до и после.


Трассировка пути и трассировка лучей, объяснение

Однако вряд ли можно будет увидеть сцены такой сложности в играх в ближайшее время — большинство из этих сцен едва достигают 30 кадров в секунду на GeForce RTX 3090 — но эти методы рендеринга уже доступны разработчикам с полным исходным кодом RTX Direct Illumination (RTXDI) и RTX Global Illumination (RTXGI) SDK. Люди, работающие в Unreal Engine, также могут получить бинарные плагины для этого инструмента.

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


Трассировка пути и трассировка лучей, объяснение

На изображении выше вы можете видеть, что туман выглядит точечным и с сильным шумом.

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

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

Трассировка Лучей

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

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

Технология трассировки лучей для визуализации впервые была представлена Тернером Уиттедом в работе 1979 года под названием «Улучшенная модель освещения для затененного отображения». В своей публикации исследователь отмечает, что его идея применения трассировки в графике основана на работах таких людей, как Роберт Голдстин, который использовал трассировку лучей для расчета радиационного воздействия в танках. Также он упоминает Артура Эппла, который в 1968 году описал технику прослеживания лучей между поверхностью и источником света для создания освещения с тенями — эту работу нередко упоминают, как первое применение трассировки лучей в рендеринге.

В то же время публикация Уиттеда включала не только трассировку лучей для генерирования теней, но и для вторичного влияния света от отражений и преломлений. Такой метод значительно повысил реализм, но был лишен вторичного рассеянного освещения или так называемого «глобального освещения».

В 1984 году была опубликована работа Роберта Кука «Распределенная трассировка лучей», в которой была открыта важная концепция случайного распределения лучей во времени и пространстве для достижения размытия в движении, полуглянцевых отражений, освещения по площади и глубины резкости. И все это при помощи тех же лучей, которые необходимо генерировать для работы со сглаживанием.

Проблема такого подхода в экспоненциальной природе трассировки. Можно запустить один луч и он вычислит путь к основному источнику света. Обычно это самый важный и самый значимый источник освещения в сцене. Однако для вторичных отражений необходимо запускать все больше и больше лучей. Начав с 1 луча, он становится еще 10 лучами, каждый из которых выделяет еще 10 лучей, получая уже сотню. Еще по 10 лучей и уже 1000, еще 10 и вот 10 тысяч — процесс может продолжаться бесконечно. Сложность в том, что уже на третьем «отскоке» луча от объектов необходимо использовать в 1000 раз больше производительность, даже если этот «проход» влияет на 1/100 от качества финального освещения. Другими словами, весь процесс трассировки лучей по своей сути крайне неэффективен, даже если он эффективен в сравнении с иными методами физического рендеринга. Несмотря на оптимизацию метода в работе Кука, экспоненциальная характеристика трассировки оставалась фундаментальной преградой для применения технологии.

Читайте также:  Есть ли софт, который смог бы показывать все неполадки сети и сетевых устройств?

Трассировка Путей

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

Таким образом, фактической разницы между трассировкой лучей и трассировкой путей нет. Это как сравнивать собаку и чихуахуа. Даже сам автор трассировки путей описывает технологию как «новый, ускоренный метод трассировки лучей».

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

Что в итоге

Сейчас «трассировку путей» часто применяют ошибочно, ассоциируя с распределенной трассировкой лучей, чтобы отделить их использование в интегрированном глобальном освещении от таких решений как Radiosity и Photon Mapping, даже если технически это не трассировка путей.

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

Больше статей на Shazoo

Новый патч для Ratchet & Clank: Rift Apart добавил поддержку трассировки лучей на видеокартах от AMD

Вот как выглядит The Elder Scrolls V: Skyrim с трассировкой пути

Portal Prelude RTX — первая игра, использующая NVIDIA RTXIO

When more work means less work

The initial concept of path tracing was introduced by James Kajiya way back in 1986, while he was a researcher for Caltech. He showed that the problem of having a processor being ground to halt, working through an ever increasing number of rays, could be solved through the use of statistical sampling of scene (specifically, Monte Carlo algorithms).


Трассировка пути и трассировка лучей, объяснение

Traditional ray tracing involves calculating the exact path of reflection or refraction of each ray, and tracing them all the way back to one or more light sources. With path tracing, multiple rays are generated for each pixel but they’re bounced off in a random direction. This gets repeated when a ray hits an object, and keeps on occurring until a light source is reached or a preset bounce limit is reached.

This in itself probably doesn’t seem like a huge change in the amount of computing required, so where’s the magic part?

Not all of the rays will be used to create the final color of the pixel in the frame. Only a certain number of them will be sampled and the algorithm uses results in an almost ideal path of light bounces, from camera to light source. One can then scale the number of samples for each pixel, to adjust the accuracy of the final image.


Трассировка пути и трассировка лучей, объяснение

Kajiya’s own diagram showing the benefits of path tracing over traditional ray tracing

Despite an extra pile of math and coding being involved, the end result is that there are far fewer rays to process, even though path tracing typically fires off dozens of rays per pixel. Tracking rays and carrying out their interaction calculations are the reason for the performance hit, in comparison to normal rendering, so using fewer rays to color a pixel is clearly a good thing.

But here’s the really clever part: ordinarily fewer rays would result in a less realistic lighting, but since the bulk of the color of the frame’s pixels are only affected by the primary rays, dumping most or all of the secondary ones doesn’t affect things as much as one might think.

Now, if the scene does contain lots of surfaces that will reflect and refract light, such as glass or water, then those secondary rays do become important. To get around this problem, either the algorithm is tweaked to account for the distribution of ray types one should be getting in a scene, or those specific surfaces are handled in their own ‘fully ray traced’ rendering pass.

Читайте также:  Максимизируйте эффективность: начните с пользовательских параметров Zabbix

A good developer will use the full gamut of rendering tools at their dispense: rasterization with shaders, path tracing, and full ray tracing. It’s a lot more work to figure this all out, but it’s ultimately less work for the hardware to deal with.

Following the path to a better future

Despite its relatively newness in the world of real-time rendering, path tracing is definitely here to stay. We’ve already seen the results in the one game and path tracing is already heavily used in offline renders, such as Blender, as well as the movie industry, with the likes of Autodesk Arnold and Pixar’s RenderMan.

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

Трассировка пути и трассировка лучей, объяснение

Трассировка пути использовалась для создания компьютерной графики для таких игр, как «Игра престолов»

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

Есть и консоли. И Xbox Series X, и PlayStation 5 предлагают поддержку «традиционной» трассировки лучей, но, учитывая, что их графические процессоры будут относительно устаревшими всего через несколько лет, разработчики будут стремиться использовать все возможные пути, чтобы выжать последние остатки отключить эти машины, прежде чем перейти к консолям следующего поколения.

Продолжайте читать. Объяснители в TechSpot

Мы изучили, как работают лучи (см.: Более глубокое погружение: растеризация и трассировка лучей), но здесь требуется краткий обзор процесса. Кадр начинается как обычно: видеокарта визуализирует всю геометрию — все треугольники, составляющие сцену — и сохраняет их в памяти.

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

Трассировка пути и трассировка лучей, объяснение

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

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

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

Трассировка пути и трассировка лучей, объяснение

Вкус того, чего могут достичь миллионы лучей. Изображение: Жиль Тран

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

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

Вот где трассировка пути вписывается в картину, простите за каламбур.

Почему трассировка пути сейчас в новостях?

Несколько раз за последние несколько лет мы видели заголовки новостей о модах, добавляющих трассировку лучей к старой классике, но большинство из них на самом деле относятся к трассировке путей. Мы слышали это еще в 2019 году с экспериментальным модом для Crysis и Quake 2 или совсем недавно с неофициальным модом трассировки лучей Half-Life и модом Classic Doom. Отслеживание всех путей.

Был также твит от Дихары Виджетунги, старшего графического инженера по исследованиям и разработкам в AMD, который объявил о своем проекте по обновлению оригинальной игры Return to Castle Wolfenstein с помощью средства визуализации с трассировкой пути.

Трассировка пути и трассировка лучей, объяснение

Трассировка пути и трассировка лучей, объяснение

Трассировка пути и трассировка лучей, объяснение

Трассировка пути и трассировка лучей, объяснение

Трассировка пути и трассировка лучей, объяснение

Трассировка пути и трассировка лучей, объяснение

Как отмечалось выше, в 2019 году Nvidia анонсировала ремастер Quake II с рендерером с трассировкой лучей, чтобы способствовать продвижению технологии RTX. Первоначально это была работа одного человека, Кристофа Шида, который создал ремастер (технически известный как Q2VKPT) в рамках исследовательского проекта. Благодаря вкладу других экспертов в области графических технологий родилась Quake II RTX, которая стала первой известной игрой, использующей трассировку пути для всего освещения.

Бандирование охлаждает такие фразы, как стохастическая выборка по множественной важности и алгоритмы уменьшения дисперсии, проект подчеркнул две вещи: во-первых, трассировка пути выглядит очень круто, а во-вторых, она по-прежнему очень сложна как для разработчиков, так и для оборудования. Если вы хотите увидеть, насколько сложна математика, прочитайте главу 47 книги Ray Tracing Gems II.

Но если такие игры, как Quake II RTX, показывают, чего можно достичь с помощью трассировки всего, такие игры, как Control и Cyberpunk 2077, демонстрируют, что невероятной графики можно добиться, смешивая все методы освещения и затенения — растеризация и шейдеры по-прежнему правят балом. , с трассировкой лучей для отражений и теней.

Таким образом, нам еще далеко до того, как мы увидим, что все игры визуализируются с использованием только трассировки пути.

Оцените статью
Хостинги