Większość opisów metod renderowania Monte Carlo, takich jak śledzenie ścieżki lub dwukierunkowe śledzenie ścieżki, zakłada, że próbki są generowane niezależnie; to znaczy używany jest standardowy generator liczb losowych, który generuje strumień niezależnych, równomiernie rozmieszczonych liczb.
Wiemy, że próbki, które nie zostaną wybrane niezależnie, mogą być korzystne pod względem hałasu. Na przykład stratyfikowane sekwencje próbkowania i sekwencje o niskiej rozbieżności są dwoma przykładami skorelowanych schematów próbkowania, które prawie zawsze poprawiają czasy renderowania.
Istnieje jednak wiele przypadków, w których wpływ korelacji próbek nie jest tak wyraźny. Na przykład metody Markowa w łańcuchu Monte Carlo, takie jak Metropolis Light Transport, generują strumień skorelowanych próbek przy użyciu łańcucha Markowa; metody wielu świateł ponownie wykorzystują mały zestaw ścieżek światła dla wielu ścieżek kamery, tworząc wiele skorelowanych połączeń cienia; nawet mapowanie fotonów zyskuje na skuteczności dzięki ponownemu wykorzystaniu ścieżek światła na wielu pikselach, zwiększając również korelację próbek (choć w sposób stronniczy).
Wszystkie te metody renderowania mogą okazać się korzystne w niektórych scenach, ale wydają się pogorszyć w innych. Nie jest jasne, jak obliczyć jakość błędu wprowadzonego przez te techniki, oprócz renderowania sceny za pomocą różnych algorytmów renderowania i sprawdzania, czy jedno wygląda lepiej od drugiego.
Pytanie zatem brzmi: w jaki sposób korelacja próbki wpływa na wariancję i zbieżność estymatora Monte Carlo? Czy możemy w jakiś sposób matematycznie oszacować, który rodzaj korelacji próbki jest lepszy od innych? Czy istnieją inne czynniki, które mogą wpłynąć na to, czy korelacja próbki jest korzystna czy szkodliwa (np. Błąd percepcyjny, migotanie animacji)?
źródło
Odpowiedzi:
Należy wprowadzić jedno ważne rozróżnienie.
Metody Markov Chain Monte Carlo (takie jak Metropolis Light Transport) w pełni potwierdzają fakt, że wytwarzają wiele wysoce skorelowanych, jest to właściwie kręgosłup algorytmu.
Z drugiej strony istnieją algorytmy, takie jak dwukierunkowe śledzenie ścieżki, metoda wielu świateł, mapowanie fotonów, w których kluczową rolę odgrywa próbkowanie wielokrotnego znaczenia i heurystyka równowagi. Optymalność heurystyki równowagi została udowodniona tylko dla próbek, które są niezależne. Wiele współczesnych algorytmów ma skorelowane próbki, a dla niektórych z nich powoduje to problemy, a dla niektórych nie.
Problem ze skorelowanymi próbkami został potwierdzony w pracy Probabilistic Connections for Bidirectional Path Tracing . Tam, gdzie zmienili heurystykę równowagi, aby uwzględnić korelację. Spójrz na rysunek 17 w pracy, aby zobaczyć wynik.
Chciałbym zauważyć, że korelacja jest „zawsze” zła. Jeśli możesz sobie pozwolić na wykonanie zupełnie nowej próbki, niż zrób to. Ale przez większość czasu nie możesz sobie na to pozwolić, więc masz nadzieję, że błąd związany z korelacją jest niewielki.
Edytuj, aby wyjaśnić „zawsze” : Mam na myśli to w kontekście integracji MC
Gdzie mierzysz błąd z wariancją estymatora
Jeśli próbki są niezależne, to warunek kowariancji wynosi zero. Skorelowane próbki zawsze powodują, że ten termin jest niezerowy, zwiększając tym samym wariancję końcowego estymatora.
Na pierwszy rzut oka jest to nieco sprzeczne z tym, co napotykamy przy próbkowaniu warstwowym, ponieważ stratyfikacja obniża błąd. Ale nie można udowodnić, że próbkowanie warstwowe jest zbieżne z pożądanym wynikiem tylko z punktu widzenia prawdopodobieństwa, ponieważ w rdzeniu próbkowania warstwowego nie ma żadnego prawdopodobieństwa.
W przypadku próbkowania warstwowego chodzi o to, że zasadniczo nie jest to metoda Monte Carlo. Próbkowanie warstwowe pochodzi ze standardowych reguł kwadraturowych dla integracji numerycznej, która doskonale nadaje się do integracji płynnej funkcji w małych wymiarach. Dlatego jest stosowany do obsługi bezpośredniego oświetlenia, które jest problemem niskiego wymiaru, ale jego gładkość jest dyskusyjna.
Zatem warstwowe próbkowanie jest jeszcze innym rodzajem korelacji niż na przykład korelacja w metodach Many Light.
źródło
Półkulista funkcja intensywności, tj. Półkulista funkcja światła padającego pomnożona przez BRDF, koreluje z liczbą próbek wymaganych na kąt bryły. Weź przykładowy rozkład dowolnej metody i porównaj go z tą półkulistą funkcją. Im bardziej są do siebie podobne, tym lepsza jest metoda w tym konkretnym przypadku.
Zauważ, że ponieważ ta funkcja intensywności jest zazwyczaj nieznana , wszystkie te metody wykorzystują heurystykę. Jeśli założenia heurystyki są spełnione, rozkład jest lepszy (= bliższy pożądanej funkcji) niż rozkład losowy. Jeśli nie, to gorzej.
Na przykład próbkowanie według ważności wykorzystuje BRDF do dystrybucji próbek, co jest proste, ale wykorzystuje tylko część funkcji intensywności. Bardzo silne źródło światła oświetlające rozproszoną powierzchnię pod niewielkim kątem otrzyma niewiele próbek, chociaż jego wpływ może być nadal ogromny. Metropolis Light Transport generuje nowe próbki z poprzednich z dużą intensywnością, co jest dobre dla kilku silnych źródeł światła, ale nie pomaga, jeśli światło dociera równomiernie ze wszystkich kierunków.
źródło