Kompensacja strat energii w modelach BSDF z pojedynczym rozpraszaniem


11

Modele powierzchni oparte na mikropacetach z pojedynczym rozpraszaniem, takie jak oryginalny Torrance-Sparrow BRDF lub modele pochodne, takie jak BSDF, do szorstkich powierzchni dielektrycznych autorstwa Waltera i in. zaniedbuje wzajemne odbicie światła między mikropacetami, co powoduje utratę energii powodującą ciemnienie, szczególnie przy wyższych wartościach chropowatości.

Problem można łatwo wykazać za pomocą testu pieca. Poniższe obrazy przedstawiają zachowanie mojej implementacji przewodzącego mikrofiletu BRDF przy użyciu modelu Smitha i rozkładu GGX dla parametrów chropowatości od 0,2 do 1,0 (tutaj współczynnik Fresnela celowo ustawiono na 1, aby problem był łatwiejszy do zauważenia):

chropowatość 0.2 chropowatość 0,4 chropowatość 0,6 chropowatość 0,8 chropowatość 1.0

Badanie pieca szorstkiego dielektryka (IoR 1.51) BSDF z wykorzystaniem modelu Smitha i rozkładu mikropacetek GGX dla parametrów chropowatości od 0,2 do 1,0:

chropowatość 0.2 chropowatość 0,4 chropowatość 0,6 chropowatość 0,8 chropowatość 1.0

Eric Heitz i in. Niedawno zaproponowałem model rozpraszania wielokrotnego, który rozwiązuje problem zaciemnienia poprzez całkowite rozwiązanie interakcji światła, ale istnieją problemy z wydajnością z powodu stochastycznej natury jego procedury oceny, jak sam powiedział Heitz na forum LuxRender .

Czy istnieje znana metoda kompensacji dla odzyskiwania utraconej energii modeli jednosiatkowych? Niekoniecznie fizycznie poprawne, ale przynajmniej niezbyt łamające fizyczną wiarygodność (wzajemność Helmholtza i oszczędność energii) i, najlepiej, bez konieczności ręcznego dostosowywania parametrów.

W Disney BSDF istnieje sparametryzowany składnik zwany „połyskiem” (w zasadzie błyszczący płat Fresnela), który można wykorzystać do kompensacji ciemnienia na krawędziach, ale jak wspominają na kursie Siggraph 2015 , jest to metoda bardzo ad hoc:

„... jest to bardzo przybliżone i nie działa tak dobrze dla innych wartości chropowatości ...”

Wspomniany wyżej komentarz Erica Heitza na forum LuxRender sugeruje również zastosowanie hakowania kompensacyjnego, ale niestety nie zawiera żadnych szczegółów:

O ile mi wiadomo, możesz użyć kilku prostszych hacków, aby poprawić oszczędność energii w modelach z pojedynczym rozpraszaniem (np. Ulepszanie albedo). Jednak jeśli to zrobisz, nie możesz uzyskać idealnie energooszczędnego materiału (na przykład doskonałego białego szorstkiego szkła) bez naruszenia wzajemności BSDF.

Odpowiedzi:


8

Według mojej wiedzy nie ma łatwego i analitycznego sposobu na odzyskanie energii utraconej w modelach z jednym rozpraszaniem. Poprzednie techniki obliczają straty energii i wprowadzają je ponownie do BRDF jako komponentu rozproszonego:

To, co proponują, jest konserwatywne i wzajemnie zachowujące energię, i prawdopodobnie jest to najprostszy sposób naprawienia wizualnego zaciemnienia z powodu utraty energii. Główną wadą jest to, że ponieważ utrata energii nie ma wyrażenia analitycznego, musi zostać wstępnie obliczona i zapisana w tabeli przeglądowej.

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.