Фотонное отображение - Photon mapping

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

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

Эффекты

Каустики

Модель бокала для вина с трассировкой лучей с отображением фотонов, чтобы показать каустика

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

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

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

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

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

Применение

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

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

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

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

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

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

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

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

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

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

Расчет яркости с помощью фотонной карты

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

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

Оптимизация

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

Вариации

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

Рекомендации

  1. ^ Ярош, Войцех (сентябрь 2008 г.). «Эффективные методы Монте-Карло для переноса света в рассеивающих средах». Кандидат наук. Диссертация, Калифорнийский университет в Сан-Диего: 119 - через Дартмут. | chapter = игнорируется (Помогите)

внешняя ссылка