Что такое трассировка путей и трассировка лучей? И почему они улучшают графику?


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

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

Изображение создано с помощью трассировки лучей

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

Растеризация и компьютерная графика

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

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

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

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

Трассировка лучей выглядит гораздо более реалистично, чем растеризация, как показано на изображении ниже. Посмотрите на отражения на чайнике и ложке.

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

На поверхностном уровне трассировка лучей — это.общий термин, который означает все: от единственного пересечения света и объекта до полного фотореализма. Однако в наиболее распространенном сегодня контексте трассировка лучей относится к методу рендеринга, который следует за лучом света (в пикселях) от заданной точки и моделирует его реакцию при встрече с объектами.

Уделите минутку и посмотрите на стену комнаты, в которой вы находитесь. Есть ли на стене источник света или свет отражается от стены от другого источника? Графика с трассировкой лучей будет начинаться с вашего глаза и следовать по линии взгляда к стене, а затем следовать по пути света от стены обратно к источнику света.

На диаграмме выше показано, как это работает. Цель имитации «глаз» (камеры на этой диаграмме) — снизить нагрузку на графический процессор.

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

Многовремени. Некоторые кадры в Университете монстровдлились по 29 часов каждый. По данным журнала Wired, на Историю игрушек 3на каждый кадр уходило в среднем 7 часов, а на некоторые кадры - 39 часов.

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

Взгляните на изображение ниже.

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

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

Пример трассировки лучей

А теперь представьте, что вы делаете это 30–60 раз в секунду. Именно такое количество энергии требуется для использования методов трассировки лучей в играх. Это, конечно, впечатляет, правда?

С течением времени доступность видеокарт, поддерживающих трассировку лучей, будет расти, и в конечном итоге этот метод станет таким же доступным, как и 3D-графика. Однако на данный момент трассировка лучей по-прежнему считается передовым достижением компьютерной графики. Так как же вступает в игру трассировка пути?

Что такое отслеживание пути?

Трассировка пути — это разновидность трассировки лучей. Он подпадает под этот зонтик, но там, где трассировка лучей изначально была теоретизирована в 1968 году, трассировка пути появилась только в 1986 году (и результаты были не такими впечатляющими, как сейчас).

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

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

Интересная особенность трассировки пути заключается в том, что эффект можно эмулировать с помощью шейдеров. Недавно для эмулятора Nintendo Switch появился шейдерный патч, который позволял игрокам имитировать глобальное освещение, прослеживаемое по пути, в таких играх, как The Legend of Zelda: Breath of the Wildи Super Mario Odyssey.эффекты выглядят красиво, они не так полны, как настоящая трассировка пути.

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

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

Однако пройдет еще некоторое время — по крайней мере несколько лет — прежде чем необходимое оборудование станет считаться «доступным». На данный момент даже необходимые видеокарты стоят более 1000 долларов..

.

Похожие сообщения:


1.07.2019