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

Если в последнее время вы хоть немного обращали внимание на новости об играх и графике(gaming and graphics news) , то вы слышали последнее и самое модное словечко: трассировка лучей(ray tracing) . Возможно, вы также слышали похожее по звучанию слово « трассировка пути»(path tracing) . И вас можно полностью простить за то, что вы не до конца понимаете, что такое любой из этих процессов.

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

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

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

Любое изображение, которое вы видите на экране компьютера(computer screen) , изначально не было этим изображением. Он начинается как растровое или векторное изображение(vector image) . Растровое изображение(raster image) состоит из набора закрашенных пикселей.

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

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

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

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

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

На поверхностном уровне (surface level)трассировка лучей(ray tracing) — это общий термин, который означает все, от единственного пересечения света и объекта до полного фотореализма. Однако в наиболее распространенном контексте, используемом сегодня, трассировка лучей(ray tracing) относится к методу рендеринга,(rendering technique) который следует за лучом света (в пикселях) от заданной точки(set point) и имитирует его реакцию при столкновении с объектами.

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

Диаграмма выше иллюстрирует, как это работает. Смоделированные «глаза» (камера на этой диаграмме) используются для уменьшения нагрузки на GPU .

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

Много(A lot) времени. На некоторые кадры в Университете монстров(Monsters University) ушло по 29 часов. «История игрушек 3»(Toy Story 3 ) занимала в среднем 7 часов на кадр, а на некоторые кадры уходило 39 часов, согласно рассказу Wired 2010 года.(Wired. )

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

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

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

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

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

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

Что такое трассировка пути?

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

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

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

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

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

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

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



About the author

Я компьютерный техник с более чем 10-летним опытом, в том числе 3 года в качестве 店員. У меня есть опыт работы с устройствами Apple и Android, и я особенно хорошо разбираюсь в ремонте и обновлении компьютеров. Я также люблю смотреть фильмы на своем компьютере и использовать свой iPhone для съемки фотографий и видео.



Related posts