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):
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:
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.
źródło