Трассировка путей (Path tracing)


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

Рисунок 1. Алгоритм трассировки путей.

Причем, существует несколько способов выбора отраженных лучей. Самый простой способ – равномерное распределение отраженных лучей по сфере. Но этот способ крайне несовершенен, потому что он испускает равное количество лучей во все стороны, даже в те, где BRDF близка к нулю и неэффективно использует вычислительные ресурсы. Другой способ заключается в том, чтобы испускать больше лучей по тем направлениям, для которых BRDF имеет большие значения, а нулевые области вообще не учитывать (в англоязычной литературе этот метод известен как importance sampling).

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

Трассировка путей, вычисляющая интеграл освещенности в самом общем случае, даже при ‘умном’ сэмплировании BRDF, очень медленно сходится и дает характерный высокочастотный шум, что очень сильно заметно человеческим глазом. Трассировка путей имеет сходимость корень квадратный из числа просчитанных путей. То есть для того, чтобы уменьшить уровень шума в m раз, необходимо выпустить m*m лучей. Для среднестатистической сцены, даже при 1000 лучей на пиксел, шум может быть всё ещё заметен глазом.

Рисунок 2. Шум, получаюшийся в результате трассировки путей.

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




<< Вернуться назад

Статьи и обзоры

Поиск пересечений

Обратная трассировка лучей

Быстрая трассировка лучей

Индустриальная основа

Фотореалистичная визуализация

GPU ray tracing

Сферические гармоники

Дружественные проекты:

OpenSource RTRT

Siberian renderer

Наши разработки

Hydra renderer

AdaRT

Публикации

Загрузить

Скриншоты и видео

ССЫЛКИ

© Copyright 2007 Владимир Фролов, Александр Фролов

При поддержке Лаборатории компьтерной графики и мультимедия ф-та ВМК МГУ
Создание сайта: Александр Фролов