Ważność Próbkowanie map środowiska


15

Jakie jest obecnie najbardziej znane, a najlepiej również weryfikowane produkcyjnie podejście do próbkowania map środowiska (EM) w opartym na MIS jednokierunkowym narzędziu do śledzenia ścieżek i podobnych typach rendererów? Wolałbym rozwiązania, które są dość skomplikowane i funkcjonalne, niż te, które zapewniają doskonałe próbkowanie kosztem bardzo skomplikowanej i trudnej do zrozumienia implementacji.

Co wiem do tej pory

Istnieje kilka prostych sposobów próbkowania EM. Potrzebną półkulę można próbkować w sposób cosinusoidalny, co ignoruje kształty funkcji BSDF i EM. W rezultacie nie działa w przypadku dynamicznych EM:

wprowadź opis zdjęcia tutaj

Aby poprawić próbkowanie do poziomu użytecznego, można próbkować luminancję EM na całej kuli. Jest stosunkowo łatwy do wdrożenia, a wyniki są dość dobre. Jednak strategia próbkowania nadal ignoruje informacje o widoczności półkuli i współczynnik cosinus (a także BSDF), co powoduje wysoki hałas na powierzchniach, które nie są bezpośrednio oświetlone przez obszary o wysokiej intensywności EM:

wprowadź opis zdjęcia tutaj

Dokumenty tożsamości

Znalazłem kilka artykułów na ten temat, ale jeszcze ich nie przeczytałem. Czy któryś z nich jest wart przeczytania i wdrożenia w jednokierunkowym znaczniku ścieżki do przodu, czy jest coś jeszcze lepszego?

  • Próbki strukturalne o znaczeniu prób środowiskowych (2003) Agarwal i in.

  • Próbkowanie o istotnym znaczeniu (2007) autorstwa Kartic Subr i Jim Arvo. Twierdzą, że przedstawiają „... algorytm do efektywnego próbkowania warstwowego ze znaczeniem map środowiska, który generuje próbki w dodatniej półkuli określonej przez lokalną orientację dowolnych powierzchni, z uwzględnieniem wagi cosinusu. „Artykuł w artykule„ Ważność próbkowania harmonicznych sferycznych ”komentuje:„ Tworzą one triangulowaną reprezentację mapy środowiska i przechowują iluminację uprzednio pomnożoną przez każdą z pierwszych dziewięciu sferycznych funkcji podstawy harmonicznej na każdym wierzchołku. Tworzy to sterowalną podstawę, w której zaciśnięty cosinus można skutecznie obracać w dowolnym kierunku. ”

  • Praktyczne pobieranie próbek o znaczeniu bezpośrednim dla oświetlenia (2008) autorstwa Petrika Clarberga i Tomasa Akenine-Möllera. Algorytm próbkowania iloczynu oświetlenia mapy środowiska i współczynnika odbicia powierzchni. Wykorzystuje próbkowanie ważności oparte na falkach.

  • Ważność próbkowania sferycznych harmonicznych (2009) autorstwa Jarosza, Carra i Jensenna. Streszczenie mówi: „... przedstawiamy pierwszą praktyczną metodę ważnego próbkowania funkcji reprezentowanych jako harmoniczne sferyczne (SH) ...”

  • Mapowanie środowiska w oparciu o zmianę tonalną Próbkowanie mapy środowiska (2015) Feng i in. To jest całkiem nowe i nie znalazłem ani odniesienia do niego, ani do samego papieru.


Mam jedno pytanie. Czy drugie zdjęcie jest generowane tylko przez próbkowanie EM? Czy jest to MISed wersja próbkowania cosinusa i próbkowania EM? Naprawdę mam nadzieję, że jest to wersja MISed, ponieważ jeśli tak, to mogę mieć lekarstwo na wysoki hałas w cienistej części.
tom

Nie @tom, używa tylko próbkowania sferycznego EM, ignorując zarówno BRDF (Lambert), jak i współczynnik cosinus. Zastosowano 64 próbki i nie zastosowano filtrowania przestrzeni obrazu, a jedynie uśredniono obszar pikseli. Kiedy stosuje się MIS w celu połączenia próbkowania EM z próbkowaniem cosinus, hałas w cieniu znacznie się zmniejsza, ale nieznacznie wzrasta w części nasłonecznionej.
ivokabel

Odpowiedzi:


6

To nie jest pełna odpowiedź, chciałbym po prostu podzielić się wiedzą zdobytą podczas studiowania dwóch artykułów wymienionych w pytaniu: Próbkowanie o istotnym znaczeniu i Praktyczne ważność produktu w przypadku bezpośredniego oświetlenia .

Próbkowanie o istotnym znaczeniu

W tym artykule proponują metodę próbkowania produktu zaciśniętego komponentu cosinus i oświetlenia mapy środowiska:

LEM(ωi)(ωin)+

Wykorzystują one fakt, że częściowe liniowe przybliżenie funkcji iloczynu można stosunkowo dobrze wyrazić i częściowo wstępnie obliczyć przy użyciu pierwszych dziewięciu sferycznych zasad harmonicznych. Budują to przybliżenie na podstawie adaptacyjnie triangulowanego pola elektromagnetycznego i używają go jako funkcji istotności przy próbkowaniu.

Obliczają one wstępnie i przechowują współczynniki aproksymacji dla każdego wierzchołka trójkąta, a także współczynniki do obliczania całki aproksymacji dla trójkąta dla każdego trójkąta. Współczynniki te nazywane są wagami wierzchołków i trójkątów. Następnie wykorzystują fakt, że można łatwo obliczyć współczynniki całki dla zbioru trójkątów, po prostu sumując poszczególne ciężary trójkątów bez uwzględnienia dodatkowych sferycznych zasad harmonicznych. To pozwala im budować zrównoważone drzewo binarne na trójkątach, w których każdy węzeł zawiera współczynniki do obliczania całki aproksymacyjnej na trójkątach sub-drzew węzła.

Procedura próbkowania polega na wybraniu trójkąta i próbkowaniu jego obszaru:

  • Trójkąt jest wybierany poprzez zejście w dół wcześniej zbudowanego drzewa binarnego z prawdopodobieństwem proporcjonalnym do przybliżeń cząstkowych. To kosztuje obliczeń w locie sub-całek, z których każde składa się z jednego wewnętrznego produktu zaciśniętych cosinusowych współrzędnych sferycznych współrzędnych z wcześniej obliczonymi współczynnikami. O(logN)
  • Wybrana powierzchnia trójkąta jest następnie próbkowana w czasie w sposób dwuliniowy za pomocą nowatorskiej strategii próbkowania warstwowego zaproponowanej w artykule.O(1)

Dla mnie wygląda to na obiecującą technikę , ale klasyczne pytanie z papierami brzmi, jak będzie się zachowywać w prawdziwym życiu. Z jednej strony mogą wystąpić przypadki patologiczne, gdy EM jest trudny do aproksymacji za pomocą trójkątnej częściowej funkcji liniowej, co może prowadzić do ogromnej liczby trójkątów i / lub złej jakości próbki. Z drugiej strony może natychmiast zapewnić względnie dobre przybliżenie całego udziału EM, co może być przydatne podczas próbkowania wielu źródeł światła.

Praktyczne znaczenie próbek produktu do bezpośredniego oświetlenia

W tym artykule proponują metodę próbkowania iloczynu oświetlenia mapy środowiska i współczynnika odbicia powierzchni ważonego cosinusiem:

LEM(ωi)fr(ωi,ωo,n)(ωin)+

Jedynym przetwarzaniem wstępnym w tej metodzie jest obliczenie hierarchicznej reprezentacji EM (na podstawie mipmapy lub falkowej). Reszta odbywa się w locie podczas pobierania próbek.

Procedura pobierania próbek:

  • Budowanie przybliżenia BRDF w locie: Najpierw rysują kilka próbek ważności BRDF i oceniają . Na podstawie tych wartości budują oparte na kwadracie ciągłe przybliżenie BRDF, w którym każdy liść drzewa zawiera dokładnie jedną próbkę.fr(ωi,ωo,n)(ωin)+
  • Obliczanie iloczynu aproksymacji BRDF i EM: Mnożenie odbywa się na liściach drzewa czworokątnego BRDF, a uśrednione wartości są przekazywane do rodziców.
  • Pobieranie próbek produktu: jednolite próbki są podawane przez drzewo produktu za pomocą prostego wypaczania próbek.

Procedura powinna wygenerować stosunkowo dobre próbki kosztem ciężkich obliczeń wstępnych - pokazują one, że do przybliżenia BRDF potrzeba około 100–200 próbek BRDF, aby uzyskać najlepszą wydajność próbkowania. Może to sprawić, że będzie on odpowiedni do obliczeń o czysto bezpośrednim oświetleniu, w których generuje się wiele próbek na punkt cieniowania, ale najprawdopodobniej jest zbyt drogi dla algorytmów globalnego oświetlenia (np. Jedno- lub dwukierunkowe znaczniki ścieżki), w których zwykle generuje się tylko kilka próbek na punkt cieniowania.


4

Oświadczenie: Nie mam pojęcia, jaki jest stan techniki w próbkowaniu map środowiska. W rzeczywistości mam bardzo małą wiedzę na ten temat. Nie będzie to pełna odpowiedź, ale sformułuję problem matematycznie i przeanalizuję go. Robię to głównie dla siebie, więc wyjaśniam to sobie, ale mam nadzieję, że OP i inni uznają to za przydatne.


Chcemy obliczyć bezpośrednie oświetlenie w punkcie, tzn. Chcemy poznać wartość całki gdzie jest funkcją BSDF (wyraźnie stwierdzam zależność od normalności, która przyda się później), to blask mapy środowiska i to termin cosinus wraz z widocznością (do czego służy ) tj. jeśli

I=S2f(ωi,ωo,n)L(ωi)(ωin)+dωi
f(ωi,ωo,n)L(ωi)(ωin)++(ωin)+=0(ωin)<0

Szacujemy tę całkę, generując próbek w odniesieniu do funkcji gęstości prawdopodobieństwa , estymatorem jest Nωi1,,ωiNp(ωi)

I1Nk=1Nf(ωik,ωo,n)L(ωik)(ωikn)+p(ωik)

Pytanie brzmi: w jaki sposób wybieramy pdf , abyśmy mogli wygenerować próbki w akceptowalnym czasie, a wariancja powyższego estymatora jest stosunkowo niewielka.p


Najlepsza metoda Wybierzproporcjonalne do całki Ale w większości przypadków tak jest wygenerowanie próbki zgodnie z tym plikiem pdf jest bardzo drogie, więc nie jest to przydatne w praktyce.p

p(ωi)f(ωi,ωo,n)L(ωi)(ωin)+

Metody sugerowane przez OP:

Metoda pierwsza : wybierz proporcjonalne do cosinusowego terminu Metoda druga : wybierz proporcjonalne do EM p

p(ωi)(ωin)+
p
p(ωi)L(ωi)

Na podstawie nazw wspomnianych artykułów mogę częściowo zgadywać, co robią (niestety nie mam czasu i energii, aby je teraz przeczytać). Ale zanim omówimy, co najprawdopodobniej robią, porozmawiajmy trochę o serii mocy: D


Jeśli mamy funkcję jednej zmiennej rzeczywistej, np. . Następnie, jeśli jest dobrze zachowany, można go rozwinąć do szeregu mocy Gdzie są stałymi. Można to wykorzystać do przybliżenia poprzez obcięcie sumy w pewnym kroku Jeśli jest wystarczająco wysokie, błąd jest naprawdę mały.f(x)

f(x)=k=0akxk
akfn
f(x)k=0nakxk
n

Teraz, jeśli mamy funkcję w dwóch zmiennych, np. możemy ją rozwinąć tylko w pierwszym argumencie gdzie są funkcjami tylko w . Może być również rozwinięty w obu argumentach gdzie są stałymi. Funkcję z prawdziwymi argumentami można rozszerzyć jako sumę mocy tego argumentu. Coś podobnego można zrobić dla funkcji zdefiniowanych na sferze.f(x,y)

f(x,y)=k=0bk(y)xk
bk(y)y
f(x,y)=k,l=0cklxkyl
ckl

Teraz zdefiniujmy funkcję na sferze, np. . Taką funkcję można również rozszerzyć w podobny sposób, jak funkcję jednego rzeczywistego parametru gdzie są stałymi i są sferycznymi harmonicznymi . Harmoniczne sferyczne są zwykle indeksowane dwoma wskaźnikami i zapisywane jako funkcja we współrzędnych sferycznych, ale nie jest to tutaj ważne. Ważne jest to, że można zapisać jako sumę niektórych znanych funkcji.f(ω)

f(ω)=k=0αkSk(ω)
αkSk(ω)f

Teraz funkcję, która zajmuje dwa punkty na kuli, np. można rozszerzyć tylko w pierwszych argumentach lub w obu argumentach f(ω,ω)

f(ω,ω)=k=0βk(ω)Sk(ω)
f(ω,ω)=k,l=0γklSk(ω)Sl(ω)

Jak to się przydaje?

Proponuję CMUNSM (Szalona mentalna bezużyteczna metoda bez próbkowania): Załóżmy, że mamy rozszerzenia dla wszystkich funkcji, tj. Jeśli podłączymy to do całka otrzymujemy

f(ωi,ωo,n)=k,l,m=0αklmSk(ωi)Sl(ωo)Sm(n)L(ωi)=n=0βnSn(ω)(ωin)+=p,q=0γpqSp(ωi)Sq(n)
I=k,l,m,n,p,q=0αklmβnγpqSl(ωo)Sm(n)Sq(n)S2Sk(ωi)Sn(ω)Sp(ωi)dωi

W rzeczywistości nie potrzebujemy już Monte Carlo, ponieważ możemy wcześniej obliczyć wartości całek a następnie oszacować sumę (w przybliżeniu suma, zsumowalibyśmy tylko kilka pierwszych warunków) i otrzymujemy pożądany wynik.S2Sk(ωi)Sn(ω)Sp(ωi)dωi

To wszystko jest miłe, ale możemy nie wiedzieć o rozszerzeniach BSDF lub mapie środowiskowej lub rozszerzenia zbiegają się bardzo powoli, dlatego musielibyśmy wziąć wiele terminów, aby uzyskać dość dokładną odpowiedź.


Dlatego nie chodzi o to, by rozszerzyć wszystkie argumenty. Jedną z metod, która mogłaby być warta zbadania, byłoby zignorowanie BSDF i rozwinięcie tylko mapy środowiska, tj. co doprowadziłoby do pdf:

L(ωi)n=0KβnSn(ωi)
p(ωi)n=0KβnSn(ωi)(ωn)+

Wiemy już, jak to zrobić dla , to tylko metoda . Domyślam się, że odbywa się to w jednym z opracowań dla wyższego .K=0K


Dalsze rozszerzenia. Możesz rozwinąć różne funkcje w różnych argumentach i robić podobne rzeczy jak powyżej. Inną rzeczą jest to, że można rozszerzać na różnych podstawach, tj. Nie należy używać harmonicznych sferycznych, ale różne funkcje.

To jest moje zdanie na ten temat, mam nadzieję, że przynajmniej trochę się wam przydało, a teraz idę do GoT i do łóżka.


Haha, kiedy opublikowałem odpowiedź, SE zapytał mnie, czy jestem człowiekiem czy robotem, strona nie była pewna: Mam nadzieję, że nie jest to spowodowane długością odpowiedzi, To wymknęło się spod kontroli.
tom

chcesz sprawić, że mój mózg się stopi, prawda? ;-) BTW: Już udało mi się przeczytać dwa artykuły / prezentacje, więc mam nadzieję, że przedłużę pytanie lub napiszę powierzchowną odpowiedź pod koniec tego tygodnia. A teraz GoT FTW!
ivokabel

0

Podczas gdy metody próbkowania produktów zapewniają lepszy (idealny) rozkład promieni, powiedziałbym, że stosowanie MIS (próbkowanie wielokrotne) jest metodą sprawdzoną w produkcji. Ponieważ informacje o zacienianiu są nieznane, próbkowanie produktów i tak nie jest idealne i bardzo trudno je wdrożyć. Strzelanie więcej promieni może być więcej warte! Oczywiście zależy od twojej sytuacji i budżetów!

Krótki opis MIS: Zasadniczo prześledzisz zarówno promień BSDF (jak zresztą robisz w przypadku oświetlenia pośredniego), jak i promień wyraźny w kierunku EM. MIS daje ci wagi, dzięki czemu możesz je łączyć w sposób, który usuwa dużo hałasu. MIS jest szczególnie dobry w wyborze „techniki” (niejawnego lub jawnego próbkowania) w zależności od zaistniałej sytuacji. Dzieje się tak naturalnie, bez konieczności dokonywania przez użytkownika trudnych wyborów w oparciu o szorstkość itp.

Rozdział 9 http://graphics.stanford.edu/papers/veach_thesis/ opisuje to szczegółowo. Zobacz także https://www.shadertoy.com/view/4sSXWt, aby zobaczyć demo MIS w akcji ze światłami obszarowymi.


Tak, MIS to ważna technika zweryfikowana podczas produkcji, która bardzo pomaga i wykorzystuję ją w swoim rozwiązaniu (wydaje mi się, że powinienem był to wyrazić w pytaniu). Jednak ogólna wydajność estymatora opartego na MIS zależy od jakości jego częściowych strategii próbkowania. Usiłuję tu ulepszyć jedną ze strategii podrzędnych, aby poprawić ogólną wydajność estymatora. Z mojego doświadczenia wynika, że ​​zwykle bardziej wydajne jest stosowanie próbek o niższej jakości niż generowanie ich kosztowniej niż łatwiejszych do wygenerowania próbek o niskiej jakości.
ivokabel
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.