Полное объемное рассеяние Монте-Карло

9

Я хотел бы добавить полное объемное рассеяние Монте-Карло к моему трассировщику пути, но мне трудно исследовать, как это сделать. Позвольте мне объяснить, что я хотел бы сделать: Объемное рассеяние Монте-Карло луч входит в материал, и мы применяем BTDF, затем через некоторое расстояние происходит событие объемного рассеяния, после которого (в изотропном случае) луч рассеивается в любом направлении в сфера. Это повторяется до тех пор, пока луч не выйдет из материала с другим BTDF.

Мои вопросы следующие:

  1. Как выбрать расстояние между событиями разброса? Интуиция говорит мне, что должен быть какой-то разброс pdf, который дает вероятность разбросаться после определенного расстояния?
    • Было бы это правильно?
    • Будет ли pdf линейной функцией для изотропных материалов?
    • У этой функции есть имя или что-то, что я могу Google?
  2. Будет ли Беер-Ламберт все еще применяться между событиями разброса?
    • Я бы подумал, что нет. Так как Беер-Ламберт является упрощением реальных расчетов рассеяния.
    • С другой стороны, возможно, Беер-Ламберт - это расчет в микроуровне, а трассировка пути - в макроуровне.
  3. Что такое объемный эквивалент BSDF? Похоже, я могу использовать фазовую функцию, такую ​​как Henyey-Greenstein, чтобы определить новое направление, но что я использую для ослабления?
  4. И наконец, каковы некоторые лучшие фразы Google для объемного рассеяния Монте-Карло?
    • Поиск по объемному рассеянию, или SSS, в конечном итоге дает статьи, методы и сообщения в блогах об упрощениях полного моделирования по методу Монте-Карло (диполь, рассеяние, рассеяние, диффузия и т. Д.)
RichieSams
источник

Ответы:

7

Прежде всего, хорошим ориентиром для отслеживания пути Монте-Карло в участвующих СМИ являются заметки из курса от Стива Маршнера.

σσ=σs+σa

σ

Итак, чтобы ответить на ваши вопросы напрямую:

  1. eσxx

    x=(lnξ)/σeσx

    σa/σ1σa/σ

  2. Нет, если вы будете следовать только что описанной процедуре выборки по важности, Beer-Lambert уже неявно включен в выборку, поэтому вы не хотите применять ее к весам трасс.

  3. σs,σa

    Вы можете сделать что-то подобное и для BSDF; Вы можете выделить общее альбедо, и зависимость от направления всегда будет нормализована. Это в основном вопрос соглашения AFAICT.

  4. Попробуйте «участвующие среды» (то есть объемную «среду» - множественные «среды», которая «участвует» в переносе света) и «объемную трассировку пути».

Натан Рид
источник
Как бы вы определили расстояния для немонохроматических коэффициентов рассеяния / поглощения? Случайно выбрать канал, а затем разделить на 1/3 (в случае RGB или XYZ)?
RichieSams
1
@RichieSams Я рекомендовал для этого случая назначить каждому лучу одну длину волны или цветовой канал. Таким образом, вы в основном рассчитываете рассеяние для каждого канала отдельно. Например, при рассеянии в атмосфере синий свет рассеивается гораздо сильнее, чем красный, и, следовательно, нуждается в гораздо большем количестве событий рассеяния, и синие фотоны будут следовать гораздо более извилистым путям, чем красные. Поэтому имеет смысл имитировать их по отдельности - подобно дисперсии из-за преломления. Я никогда не пробовал это сам.
Натан Рид
Ах, это имеет смысл. Впрочем, производительность пострадает ... Неудивительно, что все хотят оценить Монте-Карло Участвующие СМИ. Спасибо за всю информацию!
RichieSams