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?
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?
Antworten:
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:
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:
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.