Renderowanie oparte na fizyce i ray tracing

11

Mam dużo zamieszania i muszę wyjaśnić pewną terminologię i zebrać wiedzę.
Jeśli powiem, że silnik jest ray tracerem (więc wykorzystuje algorytm ray tracingu do renderowania sceny), czy jest to automatycznie silnik oparty na fizyce? Mam na myśli, że ray tracing jest z definicji fizycznie oparty lub może istnieć jakiś znacznik ray, który nie jest fizycznie oparty? (i symetrycznie, czy istnieją jakieś znaczniki inne niż promienie, które są fizycznie oparte?)
Ponadto, czy prawdą jest, że „fizycznie oparty” oznacza również, że „rozwiązuje równanie transportu światła”?

Todoroki
źródło

Odpowiedzi:

16

„Fizycznie” nie jest zbyt dobrze zdefiniowanym terminem, dlatego trudno jest dokładnie odpowiedzieć na to pytanie.

Ogólnie „fizycznie oparty” odnosi się do faktu, że dany algorytm wywodzi się z fizycznych zasad. Nie jest to fizycznie poprawne (ponieważ nie możemy sobie na to pozwolić) i zwykle należy dokonać pewnych przybliżeń, ale dobrze wiadomo, jakie są te przybliżenia i idealnie jest pewna intuicja co do tego, jaki rodzaj błędu wprowadza.

Jest to sprzeczne z modelami ad hoc, które zwykle wykonuje artysta, który obserwuje efekt w prawdziwym życiu i próbuje napisać moduł cieniujący lub podobny, który w jakiś sposób naśladuje jego wygląd. Zazwyczaj modele ad hoc są prostsze i tańsze i zwykle są pierwszymi rozwiązaniami, które pojawiają się w przypadku danego problemu, ale nie zapewniają żadnego konkretnego wglądu w to, co się faktycznie dzieje. Praktycznie niemożliwe jest również określenie, jak dokładnie taki model jest w stanie odtworzyć efekt, który próbuje symulować.

W kontekście renderowania „mechanizm renderujący oparty na fizyce” byłby zatem po prostu czymś, co renderuje obraz przy użyciu zasad opartych na fizyce, co jest bardzo niejasną klasyfikacją. Znacznik promieni nie jest z natury fizycznie oparty, a większość wczesnych znaczników promieni faktycznie używała modeli ad hoc do oświetlenia i tym podobnych. Z mojego osobistego doświadczenia, „rendering fizyczny” zwykle odnosi się do rozwiązywania równania renderowania. Wydaje się jednak, że w ostatnich latach wiele silników gier również twierdziło, że ten termin oznacza „oszczędzamy energię” lub „nie używamy już phong”.

Tak więc naprawdę nie ma twardej klasyfikacji tego, co oznacza „rendering fizyczny”, a samo użycie ray tracingu nie sprawia, że ​​renderer jest fizycznie oparty. W renderowaniu offline ten termin jest nadal używany głównie w odniesieniu do rendererów, które rozwiązują równanie renderowania, podczas gdy w renderowaniu w czasie rzeczywistym bardziej prawdopodobne jest użycie modeli mikrofacetowych lub podobnych. Ale możliwe jest, że znaczenie tego terminu zmieni się z biegiem lat.

Benedikt Bitterli
źródło
3
Jak sugeruje @BenediktBitterli, „Rendering oparty na fizyce” nie jest tak lub nie. Podczas renderowania zawsze musimy równoważyć realizm z kosztami obliczeniowymi. Niektóre renderery będą miały tylko kilka funkcji opartych na fizyce, na przykład BRDF Microfacet i cele renderowania HDR. Podczas gdy inni mogą mieć wiele, na przykład pełne BSDF, cel renderowania z pełnym spektrum, śledzenie światła, światła obszarowe itp.
RichieSams
2

Nie, po prostu:

  • Renderowanie oparte na fizyce nie wymaga raytracingu. Można użyć innych środków. *

  • Raytracing może być wykorzystywany do innych efektów niż renderowanie oparte na fizyce.

Raytracing jest często najłatwiejszy do wdrożenia i przemyślenia. Dlatego jest szeroko stosowany do renderowania opartego na fizyce. Ale z tego samego powodu wiele nierealistycznych renderów używa sztuczek raytracingu, aby uzyskać to, czego potrzebują.

* Osobiście bawiłem się niestrukturalnym MES do renderowania obrazów

joojaa
źródło