Was ist der Unterschied zwischen PBR und SSR?

11

Ich bin sehr neu in der Spieleentwicklung und habe versucht, den Unterschied zwischen Screen Space Reflection und Physically Based Rendering zu verstehen.

Ich habe über Züchterrechte gelesen und nach meinem Verständnis versucht es nachzuahmen, wie Licht im wirklichen Leben reflektiert wird, dh es wird normalerweise in zwei Komponenten aufgeteilt, spiegelnd und diffus, abhängig von der Art des Materials.

Was SSR betrifft, korrigieren Sie mich bitte, wenn ich falsch liege. So sehen Reflexionen auf einer Oberfläche aus.

Wenn mein Verständnis von SSR richtig ist, sind sie dann nicht in gewisser Weise gleich? Ich meine, ist es nicht so, wie Reflexionen auf einer Oberfläche aussehen, abhängig von der Oberflächenrauheit usw. Dies beeinflusst dann, wie viel Licht spiegelnd reflektiert und wie viel diffus reflektiert wird. Bitte korrigieren Sie mich erneut, wo immer ich falsch liege.

Kumaresan Sandran
quelle

Antworten:

17

Physikalisch basiertes Rendern

Sie sind auf dem richtigen Weg, wenn Sie sagen: "Es versucht nachzuahmen, wie Licht im wirklichen Leben reflektiert wird. Das heißt, es wird normalerweise in zwei Komponenten aufgeteilt, spiegelnd und diffus, je nach Art des Materials."

Aber wir modellieren seit langer Zeit Materialien mit spiegelnden und diffusen Spielen und Computergrafiken. Der Trick ist, dass wir diese Dinge als völlig unabhängig behandelt haben - das Ändern der Spekularität hat das Diffuse nicht geändert:

Beispiel für Phong-Schattierungen, die häufig in Spielen verwendet werden

Dies ist ein Beispiel für Phong-Schattierung aus dem Blender-Wiki . Sie können sehen, dass es zwei Parameter für Spiegelintensität und Spiegelhärte bietet, und diese Parameter ändern nur den weißlichen Teil der Reflexion. Die blaue diffuse Reflexion ändert sich überhaupt nicht.

Die Art und Weise, wie Spiele dies verwenden würden, ist, dass ein Künstler die Aufgabe hat, diese Werte für jedes Material von Hand abzustimmen, bis es "richtig aussieht". Da "Spiegelhärte" keine reale physikalische Eigenschaft von Materialien ist, die wir genau messen können, musste dies mit dem Auge erfolgen.

Diese Methode ist etwas spröde. Wenn Sie die Beleuchtung ändern (z. B. ein dynamisches Objekt, das sich durch verschiedene Bereiche bewegt, oder in einer Umgebung mit Tageszeit und Wetter), kann es auf subtile Weise falsch aussehen - zu hell oder zu dunkel -, da die Betrachtungsbedingungen nicht mit denen übereinstimmen diejenigen, auf die seine Spiegelparameter abgestimmt waren.

Geben Sie Physically-Based Rendering ein. Dies ist ein Versuch, unsere Materialbeschreibungen auf objektivere, messbare Eigenschaften realer Oberflächen zu gründen. Eine der offensichtlichsten Eigenschaften ist die Energieeinsparung - eine rauere Oberfläche streut das Licht diffus und eine glattere / metallischere Oberfläche reflektiert das Licht direkter, aber es ist derselbe Lichtpool, aus dem beide ziehen. Wenn andere Dinge gleich sind und ein Material glänzender wird, sollte die diffuse Komponente dunkler werden:

Beispiel für die Erhöhung des Reflexionsvermögens bei konstanter Albedo

Dieses Beispiel stammt aus einem Marmoset-Artikel, in dem die ursprünglich von Syntac_ gemeinsam genutzte PBR erläutert wird

Physikalisch basiertes Rendern ist mehr als Energieeinsparung, aber dies ist wahrscheinlich das verräterischste Zeichen dafür, dass Sie mit einem physisch basierten System arbeiten.

Indem wir die Reflexionsmodelle so halten, wie Materialien im wirklichen Leben funktionieren, reduzieren wir den Bedarf an Fudge-Faktoren und Künstlersubjektivität, damit ein reales Material wie Holz, Beton oder Leder unter einer Vielzahl von Lichtbedingungen real aussieht .

Beachten Sie, dass eine andere Antwort dies als indirekte Beleuchtung durch Licht beschreibt, das von anderen Objekten in der Szene reflektiert wird. Während viele Beleuchtungssysteme, die physikalisch basierte Modelle verwenden, auch Werkzeuge zur Modellierung enthalten, ist dies normalerweise unter dem separaten Namen Global Illumination bekannt . Dies ist der Effekt, der eine Seite des diffusen Kopfes in diesem Bild grün erscheinen lässt, beleuchtet durch Licht, das von der grünen Wand reflektiert wird:

Beispiel einer typischen globalen Beleuchtungstestszene

Bild aus diesem Artikel über globale Beleuchtung

Bildschirmreflexion

Während PBR versucht zu modellieren, wie das Material Licht reflektiert, versucht Screenspace Reflection zu erfassen, was reflektiert wird - was sollte ich speziell für eine glänzende, spiegelähnliche Oberfläche in der Reflexion sehen?

Auch dies ist eine relativ neue Rendering-Technik, die im Gegensatz zu den vorherigen Spielen wahrscheinlich am klarsten zu verstehen ist:

Umgedrehtes Rendern - üblich für Wasserflugzeuge oder flache Spiegel. Wir rendern buchstäblich die gesamte reflektierte Geometrie ein zweites Mal, gespiegelt über die Ebene der reflektierenden Oberfläche. Dies ergibt hochwertige Reflexionen (vollständige Details, Objekte, die mit der Oberfläche in Kontakt stehen, stimmen mit ihren Reflexionen überein), funktioniert jedoch nur für flache Oberflächen korrekt. Je welliger oder holpriger eine Oberfläche ist, desto weniger verhält sich dies wie echte Reflexionen, die auf komplexe Weise verzerren oder verschwimmen sollten.

Würfelkarten - Lassen Sie uns die Farbe speichern, die von jedem Sichtstrahl gesehen werden würde, der von seinem Mittelpunkt ausstrahlt. Durch dynamisches Rendern von Würfelkarten von ausgewählten Punkten in der Szene können wir abschätzen, welche Farbe von einer beliebig gekrümmten Oberfläche reflektiert werden soll. Das Problem hierbei ist, dass die Würfelkarte nur in ihrem Mittelpunkt vollständig korrekt ist. Da sich der Punkt, an dem wir die Reflexion simulieren, um die Szene bewegt, sollte eine Parallaxe auftreten, die in der Würfelkarte nicht vorhanden ist. Dies bedeutet, dass Objekte nicht dazu neigen, mit ihren Reflexionen übereinzustimmen.

Screen Space Reflection versucht, diese Einschränkungen zu beseitigen, indem die gerenderte Szene selbst als Quelle für Reflexionsinformationen verwendet wird. Es ray-Märsche einen reflektierten Blick Strahl, die Szene Tiefe mit, bis er etwas in der gerenderten Szene schneiden würde.

Folie, die Bildschirmreflexionen mit einem Seitenansichtsdiagramm beschreibt

Hier ist eine Folie aus einer EA DICE-Präsentation über ihre Herangehensweise an Reflexionen in der Frostbite-Engine .

Dies bedeutet, dass wir (mit einigen intelligenten algorithmischen Arbeiten) Reflexionen mit angemessener Raytracing-ähnlicher Genauigkeit von beliebigen Oberflächen in Spielen erhalten können, wobei die Oberflächen in Kontakt, Verzerrung und Unschärfe korrekt ausgerichtet sind, solange der reflektierte Teil der Oberfläche sichtbar ist -screen (dh nicht offscreen oder von etwas anderem verdeckt). Wenn die Reflexion durch das Raymarchen nicht genau bestimmt werden kann, wird sie normalerweise mit nahe gelegenen Proben oder einer Fallback-Cubemap angenähert, die die Szene neben / hinter der Ansicht der Kamera darstellt.

Beispielprojekt mit Screenspace-Reflexion

Sie können in diesem Beispiel der Bildschirmreflexion sehen , dass der Eindruck sehr überzeugend sein kann, obwohl kleine Fehler erkennbar sind (siehe die Reflexion der Unterseiten der Würfel, die im gerenderten Rahmen nicht sichtbar sind und so benachbarte Pixel einfach verschmieren und wiederholen). oder die Löcher in der Reflexion des rechten grünen Vorhangs neben dem Blumentopf und am unteren Rand des Bildschirms, wo das Raymarchen nicht die richtigen reflektierten Pixel fand). Es ist üblich, diese Technik für mäßig glänzende / leicht raue Oberflächen zu verwenden, um gelegentliche Fehler weniger sichtbar zu machen.

DMGregory
quelle
Vielen Dank für die Antwort. Genau das wollte ich wissen.
Kumaresan Sandran
Für Neugierige gibt es ein Papier aus dem Jahr 2015 über eine halb fortgeschrittene, aber intuitive Methode zur Lösung des Problems "Sehen Sie die Reflexion der Unterseiten der Würfel":
Lesen
1

Sie sind nicht wirklich verwandt.

Dieses Dokument von Marmoset erklärt PBR gut, ohne viel Mathematik aufzurufen.

Bildschirmraumreflexionen hingegen sind eine Nachbearbeitungs-Bildschirmraumtechnik, die zum Rendern von Echtzeitreflexionen verwendet wird. Es ist im Allgemeinen viel billiger als das Rendern von Würfelkarten für jeden Frame, kann jedoch weniger genau aussehen und ermöglicht nicht, dass Objekte außerhalb des Bildschirms reflektiert werden.

Syntac_
quelle
1
Genau hier kam die Verbindung, für jedermann von 2018 besuchen zu aktualisieren ... marmoset.co/posts/basic-theory-of-physically-based-rendering
sws
@sws aktualisiert Prost.
Syntac_