Jaka jest różnica między PBR a SSR?

11

Jestem bardzo nowy w tworzeniu gier i starałem się zrozumieć różnicę między odbiciem przestrzeni ekranu a fizycznym renderowaniem.

Czytałem o PBR iz tego, co rozumiem, stara się naśladować, jak światło odbija się w prawdziwym życiu, to znaczy, że zwykle dzieli się na dwa składniki, zwierciadlane i rozproszone w zależności od rodzaju materiału.

Jeśli chodzi o SSR, proszę o poprawienie mnie, jeśli się mylę, tak wyglądają odbicia na powierzchni.

Jeśli moje rozumienie SSR jest prawidłowe, to czy nie są one w ten sam sposób? Chodzi mi o to, że sposób, w jaki odbicia nie wyglądają na powierzchni, zależy od chropowatości powierzchni itp. Wpłynie to na to, ile światła jest odbijane zwierciadlanie i ile jest odbijane rozpraszanie. Ponownie, popraw mnie, gdziekolwiek się mylę.

Kumaresan Sandran
źródło

Odpowiedzi:

17

Renderowanie oparte na fizyce

Jesteś na dobrej drodze, kiedy mówisz „stara się naśladować sposób, w jaki światło odbija się w prawdziwym życiu, czyli zwykle dzieli się na dwa elementy, zwierciadlane i rozproszone w zależności od rodzaju materiału”.

Ale od dłuższego czasu modelujemy materiały z połyskiem i rozproszone w grach i grafice komputerowej. Sztuką jest to, że traktowaliśmy te rzeczy jako całkowicie niezależne - zmiana specularity nie zmieniła rozproszenia:

Przykład cieniowania Phong powszechnie używanego w grach

To jest przykład cieniowania Phong z wiki Blendera . Widać, że oferuje on dwa parametry intensywności i twardości, i parametry te zmieniają tylko białawą część odbicia. Niebieskie rozproszone odbicie w ogóle się nie zmienia.

Sposób, w jaki gry wykorzystałyby to, jest zadaniem artysty polegającym na ręcznym dostrajaniu tych wartości dla każdego materiału, dopóki „nie będzie wyglądał dobrze”. Ponieważ „twardość zwierciadlana” nie jest prawdziwą fizyczną właściwością materiałów, którą możemy dokładnie zmierzyć, musiało to zostać wykonane przez oko.

Ta metoda jest nieco krucha. Gdy zmienisz oświetlenie (powiedzmy, dynamiczny obiekt poruszający się po różnych obszarach lub w otoczeniu o porach dnia i pogody), może on wyglądać subtelnie źle - zbyt jasno lub zbyt ciemno - ponieważ warunki oglądania nie są takie same jak te, dla których jego parametry specjalne zostały dostrojone.

Wejdź w rendering fizyczny, który jest próbą ugruntowania naszych opisów materiałów w bardziej obiektywnych, mierzalnych właściwościach rzeczywistych powierzchni. Jedną z najbardziej widocznych właściwości jest oszczędność energii - szorstsza powierzchnia rozprasza światło rozproszone, a gładsza / bardziej metaliczna powierzchnia odbije światło bardziej bezpośrednio, ale jest to ta sama kula światła, z której oboje czerpią. Tak więc inne rzeczy są równe, gdy robimy materiał bardziej błyszczący, element rozproszony powinien stać się ciemniejszy:

Przykład zwiększania współczynnika odbicia przy stałym albedo

Ten przykład pochodzi z artykułu Marmoset wyjaśniającego PBR pierwotnie udostępnionego przez Syntac_

Renderowanie oparte na fizyce to coś więcej niż oszczędzanie energii, ale jest to prawdopodobnie najbardziej znamienny znak, że pracujesz z systemem opartym na fizyce.

Utrzymując modele odbicia podobne do tego, jak materiały działają w prawdziwym życiu, zmniejszamy potrzebę kruszenia i subiektywności artystów, aby uzyskać rzeczywisty materiał, taki jak drewno, beton lub skóra, aby wyglądał naprawdę w różnych warunkach oświetleniowych.

Zauważ, że inna odpowiedź opisała to w kategoriach pośredniego oświetlenia od światła odbijającego się od innych obiektów na scenie. Podczas gdy wiele systemów oświetleniowych wykorzystujących modele oparte na fizyce zawiera również narzędzia do modelowania tego, zwykle jest to znane pod osobną nazwą Global Illumination . Jest to efekt, który powoduje, że jedna strona rozproszonej głowicy na tym obrazie wydaje się zielona, ​​oświetlona światłem odbijającym się od zielonej ściany:

Przykład typowej sceny testowej globalnego oświetlenia

Zdjęcie z tego artykułu na temat globalnego oświetlenia

Odbicie obszaru ekranu

Podczas gdy PBR próbuje modelować, w jaki sposób materiał odbija światło, Screenspace Reflection próbuje uchwycić to, co jest odbijane - w szczególności dla błyszczącej, lustrzanej powierzchni, co powinienem zobaczyć w odbiciu?

Ponownie jest to stosunkowo nowa technika renderowania, która prawdopodobnie jest najłatwiejsza do zrozumienia, w przeciwieństwie do wcześniejszych gier:

Odwrócone renderowanie - wspólne dla płaszczyzn wodnych lub płaskich luster, dosłownie renderujemy całą odbitą geometrię po raz drugi w lustrze na płaszczyźnie powierzchni odbijającej. Daje to wysokiej jakości odbicia (pełne detale, przedmioty mające kontakt z powierzchnią wyrównują się z ich odbiciami), ale działa poprawnie tylko na płaskich powierzchniach. Im bardziej falista lub wyboista jest powierzchnia, tym mniej zachowuje się jak prawdziwe odbicia, które powinny zniekształcać lub rozmywać się w złożony sposób.

Mapy kostek - przechowujmy kolor, który byłby widoczny na każdym promieniu widzenia promieniującym z ich punktu środkowego. Dynamicznie renderując mapy sześcianów z wybranych punktów na scenie, możemy oszacować, jaki kolor powinien zostać odbity na dowolnej zakrzywionej powierzchni. Problem polega na tym, że mapa kostki jest całkowicie poprawna tylko w punkcie środkowym - ponieważ w miejscu, w którym symulujemy odbicie, porusza się po scenie, powinna ona zobaczyć paralaksę, której nie ma na mapie kostki. Oznacza to, że obiekty nie mają tendencji do ustawiania się w linii ze swoimi odbiciami.

Odbicie przestrzeni ekranu próbuje rozwiązać te ograniczenia, wykorzystując samą renderowaną scenę jako źródło informacji o odbiciu. To ray-marsze odbity ray widok, używając głębi sceny, w aż to przecinają się coś w renderowane sceny.

Slajd opisujący odbicia przestrzeni ekranu ze schematem widoku z boku

Oto slajd z prezentacji EA DICE na temat ich podejścia do odbić w silniku Frostbite .

Oznacza to (przy pewnej inteligentnej pracy algorytmicznej), że możemy uzyskać odbicia z rozsądną dokładnością przypominającą raytracing z dowolnych powierzchni w grach, mając prawidłowe wyrównanie powierzchni w kontakcie, zniekształceń i rozmycia, pod warunkiem, że widoczna jest odbita część powierzchni -screen (tzn. nie poza ekranem lub zasłonięty przez coś innego). Tam, gdzie odbicie nie może być dokładnie określone przez mechanizm rymowania, zwykle jest ono przybliżane za pomocą pobliskich próbek lub odwróconej mapy kubańskiej przedstawiającej scenę obok / za kamerą.

Przykładowy projekt wykorzystujący odbicie przestrzeni ekranu

W tym przykładzie odbicia przestrzeni ekranu wrażenie może być bardzo przekonujące, choć zauważalne są małe błędy (zobacz odbicie spodu kostek, które nie są widoczne w renderowanej ramce, a więc po prostu rozmazuj i powtórz sąsiednie piksele, lub dziury w odbiciu prawej zielonej kurtyny obok doniczki i na dole ekranu, w których rymarching nie znalazł odpowiednich odbitych pikseli). Często stosuje się tę technikę w przypadku średnio błyszczących / lekko szorstkich powierzchni, aby od czasu do czasu błąd był mniej widoczny.

DMGregory
źródło
Dziękuję bardzo za odpowiedź. Właśnie to chciałem wiedzieć.
Kumaresan Sandran
Dla tych, którzy są ciekawi, jest artykuł z 2015 roku na temat pół-zaawansowanej, ale intuicyjnej metody rozwiązania problemu „zobacz odbicie spodu kostek”: spójrz na artykuł: „Multi-Scale Global Illumination in Quantum Break”
Sirisian
1

Nie są tak naprawdę powiązane.

Ten dokument z Marmoset dobrze wyjaśnia PBR bez odwoływania się do matematyki.

Z drugiej strony odbicia przestrzeni ekranu to technika post-procesowej przestrzeni ekranu używana do renderowania odbić w czasie rzeczywistym. Jest to na ogół znacznie tańsze niż renderowanie map kostek dla każdej klatki, ale może wyglądać mniej dokładnie i nie pozwala na odbijanie obiektów poza ekranem.

Składnia_
źródło
1
Właśnie przybyłem tutaj, aby zaktualizować link, dla każdego, kto odwiedza od 2018 roku ... marmoset.co/posts/basic-theory-of-phisically-based-rendering
sws
@sws zaktualizowane okrzyki.
Syntac_