Повний об'ємний розсіювання Монте-Карло


9

Я хотів би додати повне об’ємне розсіяння монте-Карло до мого сліду траєкторії, але мені важко досліджувати, як це зробити. Дозвольте мені пояснити, що я хотів би зробити: Монте-Карло об'ємне розсіювання Промінь вводить матеріал, і ми застосовуємо BTDF, потім через деяку відстань відбувається об'ємна подія розсіювання, після якої (в ізотропному випадку) промінь розсіюється в будь-якому напрямку в сфери. Це повторюється, поки промінь не вийде з матеріалу з іншим BTDF.

Мої запитання такі:

  1. Як вибрати відстань між подіями розкидання? Інтуїція підказує, що має бути якийсь pdf-файл, який дає можливість розсіятися через певну відстань?
    • Це було б правильно?
    • Чи буде pdf лінійною функцією для ізотропних матеріалів?
    • Чи має ця функція ім’я чи щось, що я можу Google?
  2. Чи все-таки застосовуватиметься Бір-Ламбер між подіями розкидання?
    • Я б подумав, що ні. Оскільки Beer-Lambert - це спрощення фактичних розрахунків розсіювання.
    • Знову ж таки, можливо, Пиво-Ламберт - це обчислення на мікромасштабі, а трасування шляху - на макромасштабі.
  3. Який об'ємний еквівалент BSDF? Схоже, я можу використовувати фазову функцію, таку як Генєй-Грінштейн, для визначення нового напрямку, але що я використовую для ослаблення?
  4. Нарешті, які кращі фрази Google для об'ємного розсіювання Монте-Карло?
    • Пошук об'ємного розсіювання або SSS закінчується наданням робіт, методів та публікацій в блогах про спрощення повного моделювання Монте-Карло (Диполь, розсіювання, розсіювання, дифузія тощо)

Відповіді:


7

Перш за все, хорошим посиланням на простеження шляху Монте-Карло в ЗМІ, що беруть участь, є ці курсові записки від Стіва Маршнера.

Те, як мені подобається думати про розсіювання об'єму, полягає в тому, що фотон, що подорожує через середовище, має певну ймовірність на одиницю довжини взаємодії (отримуючи розсіяний або поглинений). Поки він не взаємодіє, він просто йде безперешкодно і без втрати енергії. Чим більше відстань, тим більша ймовірність того, що він взаємодіє десь на цій відстані. Імовірність взаємодії на одиницю довжини - це коефіцієнт який ви бачите в рівняннях. У нас зазвичай є окремі коефіцієнти для ймовірностей розсіювання та поглинання, тому .σσ=σs+σa

Ця ймовірність на одиницю довжини є саме джерелом закону Бера-Ламберта. Розріжте сегмент променя на нескінченно малі інтервали, розглядайте кожен інтервал як незалежне можливе місце для взаємодії, а потім інтегруйте вздовж променя; ви отримуєте експоненціальний розподіл (з параметром швидкості ) для ймовірності взаємодії як функції відстані.σ

Отже, щоб відповісти на ваші запитання безпосередньо:

  1. Ви можете технічно вибирати відстань між подіями, скільки хочете, якщо ви правильно зважуєте шлях на ймовірність того, що фотон може зробити його між двома сусідніми подіями, не взаємодіючи із середовищем. Іншими словами, кожен сегмент контуру в середовищі вносить ваговий коефіцієнт , де - довжина відрізка. (Це припущення про однорідне середовище, але дивіться розділ 4.2 у примітках Маршнера, зв'язаних вище, що робити, якщо воно неоднорідне.)eσxx

    Враховуючи це, зазвичай вдалим вибором відстані є вибір важливості для вибору з експоненціального розподілу. Іншими словами, ви встановлюєте а потім виключаєте фактор від ваги шляху.x=(lnξ)/σeσx

    Потім, щоб врахувати поглинання, ви можете використовувати російську рулетку, щоб знищити частину шляхів на кожному заході. Це особливо необхідно для дуже великих чи нескінченних середовищ (думаю, атмосферне розсіювання), де шлях може відскочити навмання довгий час, якщо його не вбити. Якщо ви маєте справу лише з невеликими та не надто густими засобами масової інформації, то, можливо, краще просто врахувати вагу за подію, а не використовувати російську рулетку.σa/σ1σa/σ

  2. Ні, якщо дотримуватися щойно описаної процедури вибірки важливості, Beer-Lambert вже включено неявно у вибірку, тому ви не хочете застосовувати її до ваги шляху.

  3. Об'ємний еквівалент BSDF - це комбінація коефіцієнтів розсіювання та поглинання та фазова функція. За умовою, коефіцієнти контролюють загальний баланс передачі, розсіювання та поглинання, при цьому фазова функція завжди нормалізується.σs,σa

    Ви можете зробити щось подібне і для BSDF; Ви можете визначити загальний альбедо, і залежність від спрямованості завжди нормалізується. Це здебільшого питання конвенції AFAICT.

  4. Спробуйте "медіа, що беруть участь" (тобто об'ємне "середовище" - множинне "носій" - яке "бере участь" у легкому транспорті) та "об'ємне відстеження шляху".


Як би ви відібрали відстані для коефіцієнтів неоднотонного розсіювання / поглинання? Випадково обрати канал, а потім розділити на 1/3 (у випадку RGB або XYZ)?
RichieSams

1
@RichieSams Рекомендація, яку я бачив для цього випадку, - призначити кожному променю одну довжину хвилі або кольоровий канал. Таким чином, ви в основному обчислюєте розсіювання для кожного каналу окремо. Наприклад, при атмосферному розсіянні синє світло розсіюється набагато сильніше, ніж червоне, і тому потрібно набагато більше подій розсіювання, і сині фотони будуть слідувати набагато більш звивистим шляхом, ніж червоні. Тож має сенс моделювати їх окремо - подібно до дисперсії через заломлення. Я ніколи насправді цього не пробував сам.
Натан Рід

Ах, це має сенс. Хоча продуктивність постраждає ... Недарма всі хочуть оцінювати ЗМІ Монте-Карло. Дякую за всю інформацію!
RichieSams
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.