Wie unterscheidet sich eine Lichtsonde von einer Umgebungswürfelkarte?

15

Betrachtet man eine Lichtsonden-Textur, sieht sie aus wie eine verschwommene Umgebungskarte.

Was ist der Unterschied zwischen den beiden, wie wird eine Lichtsonde hergestellt und was ist der Vorteil, wenn sie verschwommen ist?

Alan Wolfe
quelle
3
Kurze Antwort: "Lichtsonden" bedeuten normalerweise eine kompakte sphärische harmonische Darstellung der Umgebung. Sie sind verschwommen, weil sie sehr kompakt sind (nur einige zehn Bytes Speicherplatz) und weil sie für die Verwendung als diffuse Beleuchtung vorgefiltert sind. Ich werde auf eine längere Antwort eingehen, wenn ich eine Chance habe. :)
Nathan Reed
Gibt es einen Zusammenhang für Ihre Frage? Der Begriff "Lichtsonde" ist ambitioniert und wird in verschiedenen Szenarien, Algorithmen und Engines unterschiedlich verwendet.
David Kuri
Wenn Sie bereits auf shadertoy.com waren, stehen Ihnen zwei Gruppen von Würfelkarten zur Verfügung. Ein Satz besteht aus Umgebungskarten, der andere Satz sieht genauso aus, ist jedoch verschwommen und trägt die Bezeichnung Lichtsonden. Nur neugierig darauf und Lichtsonden im Allgemeinen.
Alan Wolfe

Antworten:

16

Es gibt zwei verschiedene Bedeutungen von "Lichtsonde", die mir bekannt sind. Beide repräsentieren das Licht um einen einzelnen Punkt in einer Szene, dh das, was Sie in alle Richtungen um sich herum sehen würden, wenn Sie auf eine winzige Größe verkleinert und an diesem Punkt stehen würden.

Eine Bedeutung ist eine sphärische harmonische Darstellung des Lichts um einen Punkt. Sphärische Harmonische sind eine Sammlung von Funktionen, die über einen sphärischen Bereich definiert sind. Sie sind analog zu Sinuswellen, die eine bestimmte Anzahl von Oszillationen um den Äquator und von Pol zu Pol auf der Kugel ausführen.

Sphärische Harmonische können verwendet werden, um eine glatte, niedrig aufgelöste Approximation einer beliebigen sphärischen Funktion zu erstellen, indem eine Anzahl von sphärischen Harmonischen skaliert und addiert wird - normalerweise 4 (als linear, erster Grad oder Einband-SH bezeichnet) oder 9 ( quadratisch, zweiten Grades oder Zweiband-SH genannt). Dies ist sehr kompakt, da Sie nur die Skalierungsfaktoren speichern müssen. Beispielsweise benötigen Sie für quadratische SH mit RGB-Daten nur 9 * 3 = 27 Werte pro Probe. So macht SH eine sehr kompakte, aber auch zwangsläufig sehr weiche und unscharfe Darstellung des Lichts um einen Punkt. Dies ist für diffuses Licht geeignet und möglicherweise spiegelnd mit einer hohen Rauheit.

Dieser Screenshot aus Simons Tech Blog zeigt eine Reihe von SH-Lichtsonden, die über eine Szene verteilt sind und jeweils die an diesem Punkt empfangene indirekte Beleuchtung zeigen:

SH Lichtsondenarray

Die andere derzeit gebräuchliche Bedeutung von "Lichtsonde" ist eine Umgebungs-Cube-Map, deren Mip-Pegel in unterschiedlichem Ausmaß vorverwischt wurden, sodass sie für spiegelndes Licht mit unterschiedlichen Rauheitsgraden verwendet werden kann. Dieses Bild aus Seb Lagardes Blog zeigt die Grundidee:

Vorgefilterte Cubemap-Mip-Ebenen

Die Mips mit höherer Auflösung (nach links) werden für hochglanzpolierte Oberflächen verwendet, bei denen Sie ein detailliertes Spiegelbild benötigen. Nach rechts werden die Mip-Ebenen mit niedrigerer Auflösung zunehmend unscharf und werden für Reflexionen von raueren Oberflächen verwendet. In einem Shader können Sie beim Abtasten dieser Cubemap den angeforderten Mip-Level basierend auf der Materialrauheit berechnen und die dreilineare Filterhardware nutzen.

Beide Arten von Lichtsonden werden in Echtzeitgrafiken verwendet, um die indirekte Beleuchtung zu approximieren. Während die direkte Beleuchtung in Echtzeit berechnet werden kann (oder zumindest für Flächenlichter gut angenähert ist), wird die indirekte Beleuchtung aufgrund ihrer Komplexität und ihres Rechenaufwands in der Regel immer noch in einem Offline-Vorprozess gebrannt.

Das Ergebnis des Backprozesses waren traditionell Lightmaps, aber Lightmaps funktionieren nur für diffuses Licht bei statischer Geometrie und beanspruchen außerdem viel Speicherplatz. Durch das Backen einer Reihe von SH-Lichtsonden (Sie können sich eine Menge davon leisten, weil sie sehr kompakt sind) und eine sparsamere Streuung von Cubemap-Lichtsonden erhalten Sie eine dezente diffuse und spiegelnde indirekte Beleuchtung für statische und dynamische Objekte. Sie sind heute eine beliebte Option in Spielen.

Nathan Reed
quelle
Tolle Erklärung! Nur zur Bestätigung des Teils über die Verwendung der trilinearen Filterung für die Mips ... Mips werden gegenüber Volumentexturen bevorzugt, weil sie eine geringere Auflösung verwenden und höhere Weichzeichnungsstufen eine geringere Auflösung erfordern.
Alan Wolfe
1
Ich würde sagen, dass beide "Arten" von Lichtsonden gleich sind. Lichtsonden sind ein Maß für die Strahlung (normalerweise in gewisser Weise vorgefaltet), die an einem Punkt in der Szene empfangen wird. Cubemaps und SH sind nur verschiedene Methoden zum Speichern / Berechnen einer Lichtsonde, wobei verschiedene Kompromisse zwischen Speicher, Leistung und Qualität eingegangen werden. (EDIT: Nur um es klar zu machen, ich stimme der Antwort zu, ich halte es nur für kontraproduktiv, sie als getrennte Dinge zu betrachten.)
Juriks
@AlanWolfe Es gibt eine Verwendung und das heißt, dass Karten für diffuses Licht aus einer realen Umgebung (grauer Ball / weißer Ball genannt) entnommen werden und nicht nur aus Spiegeln. Hier ist eine Diskussion der beiden Mirror / Grey Ball Shader
joojaa
1
@AlanWolfe Richtig & ndash; Sie benötigen weniger Auflösung für die stärker verschwommenen Ebenen. Außerdem sind Cubemap-Volumetexturen in der Hardware nicht vorhanden. :)
Nathan Reed