Трассировка луча — это алгоритм для моделирования распространения волн . Он был разработан в контексте компьютерной графики для рендеринга 3D- сцен, но также использовался в других схожих областях, таких как моделирование акустики и электромагнетизма .
Трассировка пучка — это производная от алгоритма трассировки лучей , которая заменяет лучи, не имеющие толщины, на пучки. Пучки имеют форму неограниченных пирамид с (возможно, сложными ) многоугольными поперечными сечениями. Трассировка пучка была впервые предложена Полом Хекбертом и Пэтом Ханраханом . [1]
При трассировке луча пирамидальный луч изначально проецируется через всю видимую пирамиду . Этот начальный видовой луч пересекается с каждым полигоном в среде, как правило, от ближайшего к самому дальнему. Каждый полигон, пересекающийся с лучом, должен быть видимым и удаляется из формы луча и добавляется в очередь рендеринга. Когда луч пересекается с отражающим или преломляющим полигоном, новый луч создается аналогично трассировке лучей.
Вариант трассировки лучей пробрасывает пирамидальный луч через каждый пиксель плоскости изображения . Затем он разделяется на подлучи на основе его пересечения с геометрией сцены. Лучи отражения и пропускания ( преломления ) также заменяются лучами. Этот тип реализации используется редко, поскольку задействованные геометрические процессы намного сложнее и, следовательно, дороже, чем просто пробрасывание большего количества лучей через пиксель. Трассировка конуса — это похожая техника, использующая конус вместо сложной пирамиды.
Трассировка лучей решает определенные проблемы, связанные с выборкой и наложением спектров , которые могут мешать традиционным подходам к трассировке лучей. [2] Поскольку трассировка лучей эффективно вычисляет путь каждого возможного луча в пределах каждого луча [3] (который можно рассматривать как плотный пучок смежных лучей), она не так подвержена недостаточной выборке (пропущенным лучам) или избыточной выборке (трате вычислительных ресурсов). Вычислительная сложность, связанная с лучами, сделала их непопулярными для многих приложений визуализации. В последние годы алгоритмы Монте-Карло, такие как распределенная трассировка лучей и перенос света Metropolis, стали более популярными для вычислений рендеринга.
«Обратный» вариант трассировки луча направляет лучи из источника света в окружающую среду. Подобно фотонному отображению , обратная трассировка луча может использоваться для эффективного моделирования световых эффектов, таких как каустика . [4] Недавно метод обратной трассировки луча был также расширен для обработки взаимодействий глянцевых и диффузных материалов (глянцевая обратная трассировка луча), например, от полированных металлических поверхностей. [5]
Трассировка лучей успешно применялась в областях акустического моделирования [6] и моделирования электромагнитного распространения. [7] В обоих этих приложениях лучи используются как эффективный способ отслеживания глубоких отражений от источника к приемнику (или наоборот). Лучи могут обеспечить удобный и компактный способ представления видимости. После расчета дерева лучей его можно использовать для легкого учета движущихся передатчиков или приемников.
Трассировка луча по своей концепции схожа с трассировкой конуса .