Трассировка пути — продвинутый метод получения изображения в компьютерной графике, который основан на распространении лучей света. Как он работает, и в чем его отличие от обычной трассировки лучей? Расскажем в нашем материале.
В чем отличие от трассировки лучей?
Трассировка лучей, или Ray Tracing — технология построения 3D-изображения, использующая в качестве основы расчеты отражений световых лучей от различных поверхностей. По сравнению с растеризацией, наиболее популярным методом в компьютерных играх, трассировка позволяет более реалистично передать освещение сцены.
При трассировке траектория луча просчитывается от точки взгляда игрока к объектам во внутриигровой сцене. При каждом пересечении с частью какого-либо объекта рассчитывается его влияние на цвет, прозрачность и ориентацию дальнейшего распространения луча. Затем траектория луча продолжает отслеживаться и дальше до тех пор, пока он не прекратит отражаться. Это происходит, если луч столкнется с источником света или попадет на светопоглощающую поверхность. Такие расчеты производятся от каждой виртуальной точки экрана — то есть, каждого пикселя итоговой картинки.
Трассировка пути, или Path Tracing — более продвинутая и заметно отличающаяся техника. При ее использовании траектория распространения лучей строится от источников света в сцене. От каждого их них просчитываются лучи во все стороны.
В реальности таких лучей очень много. Но при трассировке пути из этого количества используются лишь сотни или тысячи. Их местоположение рассчитывается с помощью метода Монте-Карло — случайного выбора, ограниченного заранее определенным пространством. Дальнейшие расчеты аппроксимируются с помощью технологий шумоподавления, как и в случае обычной трассировки лучей. Для тех лучей, которые напрямую или после переотражений попадают в область зрения игрока, рассчитывается влияние на цвет и освещенность пикселей экрана. На каждую точку может попадать множество лучей, поэтому их влияние при отображении суммируется по сложной формуле.
Качество и ресурсоемкость
По сравнению с трассировкой лучей, трассировка пути обеспечивает более приближенную к реальности картинку. К тому же, эта технология меньше страдает от главного минуса обычной трассировки — слишком темного изображения в том случае, если в кадре мало освещения. А все потому, что при трассировке пути до каждой точки кадра доходит заметно больше света.
Но есть у технологии одно несовершенство. Даже обычная трассировка — достаточно ресурсоемкий процесс, способный поставить на колени современные видеокарты в высоких разрешениях. Ну а трассировка пути еще «тяжелее» для железа, так как вычислений в ее случае выполняется заметно больше. Если не пользоваться технологиями генерации кадров, даже топовые модели видеокарт могут работать с ней лишь в разрешениях, не превышающих 1440p.
Среднебюджетным вариантам трассировка пути в ближайшее время не светит — даже в 1080p приемлемой частоты кадров с ними будет добиться проблематично.
Среди функциональных преимуществ трассировки пути — ее большая гибкость. При использовании технологии есть возможность управлять количеством лучей от источников света, таким образом регулируя нагрузку и оставляя задел на будущее. Большее количество лучей означает лучшее качество итогового изображения. Но при этом остается некий минимальный предел, при котором трассировка пути неэффективна — если лучей будет слишком мало, алгоритмы шумоподавления не справятся с конечной картинкой без артефактов.
Поэтому, несмотря на то, что трассировка пути при малом количестве лучей может быть не особо «тяжелее» обычной трассировки лучей, в такой конфигурации она вряд ли будет использоваться.
Где можно встретить
Игр, использующих трассировку пути, пока немного. Это Cyberpunk 2077 с режимом RT Overdrive, а также более простые графически Quake II RTX и Portal RTX — старые проекты, которые обрели новое дыхание с применением Path Tracing. Помимо этого, трассировка пути была внедрена во многие моды для старых игр. Например, Half-Life, Doom и Descent.
Кроме игр, трассировка пути находит применение в профессиональном 3D-моделировании. Мультфильмы и сцены в кино, для которых используется компьютерная графика, часто используют Path Tracing. Причем делают это достаточно давно.
В этих сферах трассировка пути применяется заметно шире, так как отсутствует требование к ее исполнению в реальном времени. А так как Path Tracing обеспечивает наиболее приближенное к «живой» картинке освещение, профессионалы стараются выбирать именно его.
Заключение
Трассировка пути — продвинутый метод, который позволяет создавать наиболее правдоподобное освещение в компьютерной графике. За этой технологией — будущее игр. Но пока она слишком тяжела для основной массы современных видеокарт, чтобы использоваться повсеместно. Поэтому сейчас встретить ее в играх можно достаточно редко. Причем, в современных ресурсоемких проектах она все равно комбинируется с растеризацией, как и обычная трассировка лучей. То есть, рассчитывать на «чистую» трассировку пути в играх с богатой графикой пока не приходится.
О явных преимуществах технологии еще говорить рано. В будущем, с ростом вычислительных возможностей видеокарт, трассировка пути поможет создать приближенное к реальности освещение в большинстве игр. Но, скорее всего, это будет не скоро — лишь через несколько поколений видеокарт.