stringtranslate.com

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

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

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

Последствия

Каустики

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

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

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

Диффузное взаимное отражение проявляется, когда свет от одного диффузного объекта отражается на другой. Фотонное картирование особенно хорошо справляется с этим эффектом, поскольку алгоритм отражает фотоны от одной поверхности к другой на основе функции распределения двунаправленной отражательной способности этой поверхности (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.

Внешние ссылки