Dlaczego śledzenie Monte Carlo Ray działa lepiej niż śledzenie rozproszone?

30

Słyszałem, że jakość Monte Carlo ray tracer (oparta na algorytmach śledzenia ścieżki) jest znacznie bardziej realistyczna niż silnik rozproszony (stochastyczny). Próbuję zrozumieć, dlaczego, ale dopiero zaczynam.

Aby ktoś zagłębił się w ten temat i zrozumiał podstawy, czy ktoś może skierować mnie w dobrym kierunku? Która część algorytmu prowadzi do bardziej realistycznego renderowania?

p2or
źródło
9
Chciałbym czegoś więcej niż „rekomendacji solidnej książki”, ponieważ na to pytanie powinna uzyskać bezpośrednią odpowiedź ktoś, kto o tym wie. Powinniśmy spróbować umieścić informacje na stronie zamiast wskazywać na nią poza nią.
Robobenklein
@robobenklein Pytanie edytowane, lepiej uważaj;)
p2or
@ChristianRau Usunięcie „Dzięki” powinno być omówione w meta, jest inaczej na każdej stronie wymiany stosów ...
p2or
1
@poor Nie, to nie jest tak naprawdę. To jest coś, czego nigdzie się nie zmienia. I dopóki nie mamy specjalnych zasad, i tak stosujemy ogólne zasady SE. Ale nawet wtedy nie mogę sobie wyobrazić nikogo, kto głosowałby na to tutaj. Nigdy nie widziałem, aby była to dobra praktyka na jakiejkolwiek innej stronie SE.
Chris mówi Przywróć Monikę

Odpowiedzi:

31

Termin „rozproszone śledzenie promieni” został pierwotnie ukuty przez Roberta Cooka w tym artykule z 1984 roku. Zauważył, że aby wykonać antyaliasing w ray tracerze, renderer musi wykonać przestrzenne upsampling - to znaczy, aby pobrać więcej próbek (tj. Wykonać więcej promieni) niż liczba pikseli na obrazie i połączyć ich wyniki . Jednym ze sposobów na to jest strzelanie wielu promieni w pikselu i uśrednianie ich wartości kolorów, na przykład. Jeśli jednak renderer i tak już śledzi wiele promieni na piksel, aby uzyskać wygładzony obraz, wówczas promienie te można również „rozdzielić” między dodatkowe wymiary niż tylko położenie piksela, aby próbkować efekty, których nie można uchwycić za pomocą pojedynczego promienia . Ważne jest to, że nie wiąże się to z żadnymi dodatkowymi kosztami oprócz przestrzennego upsamplingu, ponieważ i tak już śledzisz te dodatkowe promienie. Na przykład,

Śledzenie promieniami Monte Carlo jest terminem nieco dwuznacznym. W większości przypadków odnosi się do technik renderowania, które rozwiązują równanie renderowania, wprowadzony przez Jima Kajiyę w 1986 roku, przy użyciu integracji Monte Carlo. Praktycznie wszystkie nowoczesne techniki renderowania, które rozwiązują równanie renderowania, takie jak śledzenie ścieżki, dwukierunkowe śledzenie ścieżki, progresywne mapowanie fotonów i VCM, można sklasyfikować jako techniki śledzenia promieni Monte Carlo. Ideą integracji Monte Carlo jest to, że możemy obliczyć całkę dowolnej funkcji, losowo wybierając punkty w dziedzinie integracji i uśredniając wartość funkcji w tych punktach. Na wysokim poziomie, w śledzeniu promieni Monte Carlo, możemy wykorzystać tę technikę do zintegrowania ilości światła docierającego do kamery w pikselu w celu obliczenia wartości piksela. Na przykład znacznik ścieżki robi to, losowo wybierając punkt w pikselu, aby wystrzelić pierwszy promień, a następnie losowo wybiera kierunek, aby kontynuować na powierzchni, na której wyląduje, i tak dalej. Możemy również losowo wybrać pozycję na osi czasu, jeśli chcemy wykonać rozmycie ruchu, lub losowo wybrać punkt na aperturze, jeśli chcemy zrobić głębię ostrości lub ...

Jeśli brzmi to bardzo podobnie do rozproszonego śledzenia promieni, to dlatego, że tak jest! Możemy myśleć o rozproszonym śledzeniu promieni jako bardzo nieformalnym opisie algorytmu Monte Carlo, który próbkuje pewne efekty, takie jak miękkie cienie. Artykuł Cooka nie ma podstaw matematycznych, aby właściwie o tym właściwie myśleć, ale z pewnością można wdrożyć rozproszone śledzenie promieni za pomocą prostego renderera Monte Carlo. Warto zauważyć, że w rozproszonym śledzeniu promieni brakuje jakiegokolwiek opisu efektów globalnego oświetlenia, które są naturalnie modelowane w równaniu renderowania (należy wspomnieć, że artykuł Kajiya został opublikowany dwa lata po pracy Cooka).

Możesz myśleć o śledzeniu promieni Monte Carlo jako bardziej ogólnej wersji rozproszonego śledzenia promieni. Śledzenie promieniami Monte Carlo zawiera ogólne ramy matematyczne, które pozwalają obsłużyć praktycznie każdy efekt, w tym te wymienione w rozproszonym papierze do śledzenia promieni.

Obecnie „rozproszone śledzenie promieni” nie jest tak naprawdę terminem używanym w odniesieniu do oryginalnego algorytmu. Częściej słychać to w połączeniu z „efektami dystrybucji”, które są po prostu efektami takimi jak rozmycie w ruchu, głębia ostrości lub miękkie cienie, których nie można obsłużyć za pomocą raytracera z pojedynczą próbką.

Benedikt Bitterli
źródło
5

W rozproszonym śledzeniu promieni stochastycznie próbkujesz wiele promieni w kierunkach, które mogą być preferowane przez BRDF. Natomiast w przypadku śledzenia promieni Monte Carlo lub po prostu śledzenia ścieżki próbkuje się tylko jeden promień w kierunku preferowanym przez BRDF . Istnieją więc dwie oczywiste zalety śledzenia ścieżki:

  • Obliczeniowo tańszy. Co oznacza, że ​​przy tej samej mocy obliczeniowej masz swobodę obliczania większej liczby trafień obiektów w porównaniu do śledzenia rozproszonego promienia, w którym występuje wiele promieni.
  • Mniej hałasu. Rozproszone śledzenie promieni próbkuje promienie w kierunkach, które mogą nie być preferowane przez BRDF, wprowadzając w ten sposób niepożądane artefakty.

I tak, śledzenie ścieżki dałoby lepsze wyniki.

ranagraw
źródło
2
„Natomiast w przypadku śledzenia promieni Monte Carlo lub po prostu śledzenia ścieżki próbkuje się tylko jeden promień w kierunku preferowanym przez BRDF.” Sam w sobie nie wiesz, jak wybierany jest promień. Naiwne podejścia wykorzystują promienie losowe. Biorąc pod uwagę BRDF, ważność próbkowania jest nieodłączna od śledzenia promieni Monte Carlo lub śledzenia ścieżki.
David Kuri
4
Uważam, że ta odpowiedź jest całkowicie fałszywa. Możesz dowolnie próbować wychodzące promienie i zważyć ich wynik podczas łączenia. Otrzymujesz tę samą prawdę, co rosyjską technikę ruletki, ale ogólnie przyjmuje się, że poprzednia metoda jest droższa.
v.oddou