Pełne rozproszenie wolumetryczne Monte-Carlo

9

Chciałbym dodać pełne rozproszenie wolumetryczne Monte-Carlo do mojego znacznika ścieżki, ale mam trudności z badaniem, jak to zrobić. Pozwól mi wyjaśnić, co chciałbym zrobić: Rozpraszanie wolumetryczne Monte Carlo promień wchodzi w materiał, a my stosujemy BTDF, a następnie po pewnej odległości następuje zdarzenie rozproszenia objętościowego, po którym (w przypadku izotropowym) promień rozprasza się w dowolnym kierunku w kula. To się powtarza, dopóki promień nie opuści materiału z innym BTDF.

Moje pytania są następujące:

  1. Jak wybrać odległość między zdarzeniami rozproszonymi? Intuicja mówi mi, że powinien istnieć jakiś rodzaj rozproszenia pdf, który daje prawdopodobieństwo rozproszenia po określonej odległości?
    • Czy to byłoby poprawne?
    • Czy pdf byłby funkcją liniową dla materiałów izotropowych?
    • Czy ta funkcja ma nazwę lub coś, co mogę Google?
  2. Czy Beer-Lambert nadal miałby zastosowanie między wydarzeniami rozproszonymi?
    • Nie sądzę. Ponieważ Beer-Lambert jest uproszczeniem faktycznych obliczeń rozproszenia.
    • Z drugiej strony być może Beer-Lambert jest obliczeniem w skali mikro, a śledzenie ścieżki odbywa się w skali makro.
  3. Jaki jest wolumetryczny odpowiednik BSDF? Wygląda na to, że mogę użyć funkcji fazowej, takiej jak Henyey-Greenstein, aby określić nowy kierunek, ale czego użyć do tłumienia?
  4. Wreszcie, jakie są lepsze frazy Google dotyczące rozpraszania objętościowego Monte-Carlo?
    • Przeszukiwanie rozpraszania wolumetrycznego lub SSS kończy się publikacją artykułów, metod i postów na blogach o uproszczeniach pełnej symulacji Monte-Carlo (dipol, rozpraszanie, rozpraszanie, dyfuzja itp.)
RichieSams
źródło

Odpowiedzi:

7

Przede wszystkim dobrym odniesieniem do śledzenia ścieżki Monte Carlo w uczestniczących mediach są notatki z kursu Steve'a Marschnera.

Sposób, w jaki lubię myśleć o rozpraszaniu objętości, polega na tym, że foton przemieszczający się przez medium ma pewne prawdopodobieństwo na jednostkę długości interakcji (rozproszenia lub absorpcji). Dopóki nie wchodzi w interakcje, po prostu przebiega w linii prostej bez przeszkód i bez utraty energii. Im większa odległość, tym większe prawdopodobieństwo, że oddziałuje gdzieś w tej odległości. Prawdopodobieństwo interakcji na jednostkę długości jest współczynnikiemσktóre widzicie w równaniach. Zwykle mamy osobne współczynniki prawdopodobieństwa rozproszenia i absorpcji, więcσ=σs+σa.

To prawdopodobieństwo na jednostkę długości jest dokładnie źródłem prawa Beer-Lambert. Podziel segment promienia na nieskończenie małe przedziały, traktuj każdy przedział jako niezależne możliwe miejsce interakcji, a następnie zintegruj wzdłuż promienia; otrzymujesz rozkład wykładniczy (z parametrem szybkościσ) dla prawdopodobieństwa interakcji w funkcji odległości.

Tak więc, aby bezpośrednio odpowiedzieć na twoje pytania:

  1. Państwo może technicznie wybrać dystans pomiędzy wydarzeniami jednak chcesz, tak długo, jak prawidłowo ważyć ścieżkę prawdopodobieństwo, że foton może go między dwoma sąsiednimi wydarzeń bez interakcji ze środowiskiem. Innymi słowy, każdy segment ścieżki w medium ma współczynnik wagowy wynoszącyeσx, gdzie xto długość segmentu. (Zakłada się, że jest to jednorodne medium, ale patrz punkt 4.2 w przypisach Marschnera powyżej, aby dowiedzieć się, co zrobić, jeśli jest niejednorodny.)

    Biorąc to pod uwagę, zwykle dobrym wyborem dla odległości jest próbkowanie jej ważności z rozkładu wykładniczego. Innymi słowy, ustawiłeśx=(lnξ)/σ a następnie pomiń eσx współczynnik z masy ścieżki.

    Następnie, aby uwzględnić wchłanianie, możesz użyć rosyjskiej ruletki, aby zabić ułamek σa/σścieżek na każdym wydarzeniu. Jest to szczególnie konieczne w przypadku bardzo dużych lub nieskończonych mediów (np. Rozpraszanie atmosferyczne), w których ścieżka może odbić się arbitralnie przez długi czas, jeśli nie zostanie zabita. Jeśli masz do czynienia tylko z małymi i niezbyt gęstymi mediami, lepiej może po prostu wziąć pod uwagę wagę1σa/σ na wydarzenie, zamiast korzystać z rosyjskiej ruletki.

  2. Nie, jeśli postępujesz zgodnie z opisaną właśnie procedurą próbkowania ważności, Beer-Lambert jest już domyślnie włączony do próbkowania, więc nie chcesz stosować go do wag ścieżki.

  3. Objętościowy ekwiwalent BSDF jest kombinacją współczynników rozproszenia i absorpcji σs,σai funkcja fazy. Zgodnie z konwencją współczynniki kontrolują ogólną równowagę transmisji, rozpraszania i absorpcji, podczas gdy funkcja fazy jest zawsze znormalizowana.

    Możesz zrobić coś takiego również dla BSDF; możesz wyliczyć ogólne albedo i mieć zawsze znormalizowaną zależność kierunkową. Jest to głównie kwestia konwencji AFAICT.

  4. Wypróbuj „uczestniczące media” (to znaczy wolumetryczne „medium” - mnogie „media” - które „uczestniczą” w lekkim transporcie) i „wolumetryczne śledzenie ścieżki”.

Nathan Reed
źródło
W jaki sposób próbowałbyś odległości dla współczynników rozproszenia / absorpcji innych niż monochromatyczne? Losowo wybrać kanał, a następnie podzielić przez 1/3 (w przypadku RGB lub XYZ)?
RichieSams,
1
@RichieSams Zaleceniem, które widziałem w tym przypadku, jest przypisanie każdemu promieniowi pojedynczej długości fali lub kanału koloru. Zasadniczo obliczasz rozpraszanie dla każdego kanału osobno. Na przykład, w rozpraszaniu atmosferycznym, niebieskie światło rozprasza się znacznie silniej niż czerwony i dlatego potrzebuje znacznie więcej zdarzeń rozpraszania, a niebieskie fotony będą podążać znacznie bardziej skomplikowanymi ścieżkami niż czerwone. Dlatego sensowne jest symulowanie ich osobno - podobnie jak dyspersja z powodu refrakcji. Jednak tak naprawdę nigdy tego nie próbowałem.
Nathan Reed,
Ach, to ma sens. Choć wydajność ucierpi ... Nic dziwnego, że każdy chce oszacować media uczestniczące w Monte Carlo. Dzięki za wszystkie informacje!
RichieSams,