Фотонное картирование

Двухпроходный алгоритм рендеринга глобального освещения

В компьютерной графике фотонное картирование — это двухпроходный алгоритм рендеринга глобального освещения , разработанный Хенриком Ванном Йенсеном в период с 1995 по 2001 год [1] , который приблизительно решает уравнение рендеринга для интегрирования светового излучения в заданной точке пространства. Лучи от источника света (например, фотоны ) и лучи от камеры трассируются независимо, пока не будет выполнен некоторый критерий завершения, затем они соединяются на втором этапе для получения значения светового излучения. Алгоритм используется для реалистичного моделирования взаимодействия света с различными типами объектов (аналогично другим фотореалистичным методам рендеринга ). В частности, он способен моделировать преломление света через прозрачное вещество, такое как стекло или вода (включая каустики ), диффузное взаимное отражение между освещенными объектами, подповерхностное рассеяние света в полупрозрачных материалах и некоторые эффекты, вызванные твердыми частицами, такими как дым или водяной пар . Фотонное картирование также может быть расширено для более точного моделирования света, такого как спектральный рендеринг . Прогрессивное фотонное картирование (PPM) начинается с трассировки лучей, а затем добавляет все больше и больше проходов фотонного картирования для обеспечения все более точного рендеринга.

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

Эффекты

Каустики

Модель бокала для вина , трассированная с помощью фотонного картирования для отображения каустики

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

Диффузное взаимное отражение

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

Подповерхностное рассеяние

Подповерхностное рассеяние — это эффект, очевидный, когда свет проникает в материал и рассеивается, прежде чем поглотиться или отразиться в другом направлении. Подповерхностное рассеяние можно точно смоделировать с помощью фотонного картирования. Это был оригинальный способ, которым его реализовал Дженсен; однако метод становится медленным для сильно рассеивающих материалов, и двунаправленные функции распределения отражательной способности поверхностного рассеяния (BSSRDF) более эффективны в этих ситуациях.

Использование

Построение фотонной карты (1-й проход)

При картировании фотонов световые пакеты, называемые фотонами, отправляются в сцену из источников света. Всякий раз, когда фотон пересекается с поверхностью, точка пересечения и входящее направление сохраняются в кэше, называемом картой фотонов . Обычно для сцены создаются две карты фотонов: одна специально для каустик и глобальная для другого света. После пересечения поверхности материалом задается вероятность либо отражения, либо поглощения, либо передачи/преломления. Для выбора одного из этих действий используется метод Монте-Карло, называемый русской рулеткой . Если фотон поглощается, новое направление не задается, и трассировка для этого фотона заканчивается. Если фотон отражается, для определения отношения отраженной яркости используется функция распределения двунаправленной отражательной способности поверхности . Наконец, если фотон передает, задается функция его направления в зависимости от характера передачи.

После построения карты фотонов (или во время построения) она обычно располагается оптимальным образом для алгоритма k-ближайших соседей , поскольку время поиска фотонов зависит от пространственного распределения фотонов. Дженсен выступает за использование kd-деревьев . Затем карта фотонов сохраняется на диске или в памяти для последующего использования.

Рендеринг (2-й проход)

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

На этом этапе уравнение рендеринга используется для расчета поверхностной яркости, выходящей из точки пересечения в направлении луча, который на нее попал. Для повышения эффективности уравнение разлагается на четыре отдельных фактора: прямое освещение, зеркальное отражение, каустика и мягкое непрямое освещение.

Для точной оценки прямого освещения луч прослеживается от точки пересечения до каждого источника света. Пока луч не пересекает другой объект, источник света используется для расчета прямого освещения. Для приблизительной оценки непрямого освещения фотонная карта используется для расчета вклада яркости.

Зеркальное отражение в большинстве случаев можно рассчитать с помощью процедур трассировки лучей (поскольку они хорошо справляются с отражениями).

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

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

Расчет яркости с использованием фотонной карты

Для расчета поверхностной яркости в точке пересечения используется одна из кэшированных фотонных карт. Шаги следующие:

  1. Соберите N ближайших фотонов, используя функцию поиска ближайшего соседа на карте фотонов.
  2. Пусть S — сфера, содержащая эти N фотонов.
  3. Для каждого фотона разделите величину потока (реальных фотонов), который представляет фотон, на площадь S и умножьте на BRDF, примененный к этому фотону.
  4. Сумма этих результатов для каждого фотона представляет собой полную поверхностную яркость, возвращаемую пересечением поверхностей в направлении падающего на них луча.

Оптимизации

  • Чтобы избежать испускания ненужных фотонов, начальное направление исходящих фотонов часто ограничивается. Вместо того, чтобы просто посылать фотоны в случайных направлениях, они посылаются в направлении известного объекта, который является желаемым манипулятором фотонов, чтобы либо сфокусировать, либо рассеять свет. Есть много других улучшений, которые можно внести в алгоритм: например, выбор количества отправляемых фотонов, а также куда и по какой схеме их посылать. Казалось бы, испускание большего количества фотонов в определенном направлении приведет к тому, что более высокая плотность фотонов будет сохранена в фотонной карте вокруг позиции, куда попадают фотоны, и, таким образом, измерение этой плотности даст неточное значение для облученности . Это правда; однако алгоритм, используемый для вычисления облученности , не зависит от оценок облученности.
  • Для мягкого непрямого освещения, если поверхность является ламбертовской , то для интерполяции значений из предыдущих расчетов можно использовать метод, известный как кэширование освещенности.
  • Чтобы избежать ненужного тестирования столкновений при прямом освещении, можно использовать теневые фотоны. Во время процесса картирования фотонов, когда фотон ударяется о поверхность, в дополнение к обычным выполняемым операциям испускается теневой фотон в том же направлении, откуда пришел исходный фотон, который проходит весь путь через объект. Следующий объект, с которым он сталкивается, заставляет теневой фотон сохраняться в карте фотонов. Затем во время расчета прямого освещения, вместо того чтобы посылать луч от поверхности к свету, который проверяет столкновения с объектами, карта фотонов запрашивается на наличие теневых фотонов. Если их нет, то объект имеет четкую линию видимости к источнику света, и дополнительных вычислений можно избежать.
  • Для оптимизации качества изображения, особенно каустики, Дженсен рекомендует использовать конусный фильтр. По сути, фильтр придает вес вкладу фотонов в яркость в зависимости от того, насколько далеко они находятся от пересечений лучей с поверхностью. Это может давать более четкие изображения.
  • Картографирование фотонов в пространстве изображений достигает производительности в реальном времени за счет вычисления первого и последнего рассеяния с использованием растеризатора на графическом процессоре.

Вариации

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

Ссылки

  1. ^ Дженсен, Х. (1996). Глобальное освещение с использованием фотонных карт . [онлайн] Доступно по адресу: http://graphics.stanford.edu/~henrik/papers/ewr7/egwr96.pdf
  • Глобальное освещение с использованием фотонных карт
  • Реалистичный синтез изображений с использованием фотонного картирования ISBN  1-56881-147-0
  • Введение в фотонное картирование от Вустерского политехнического института
  • Предвзятость в рендеринге
  • Бумага для сигграфии
Взято с "https://en.wikipedia.org/w/index.php?title=Photon_mapping&oldid=1125070493"