In der Computergrafik ist das Photon Mapping ein von Henrik Wann Jensen entwickelter Zwei-Pass-Algorithmus für globale Illumination, der die Rendering-Gleichung annähernd löst. Strahlen von der Lichtquelle und Strahlen der Kamera werden unabhängig voneinander verfolgt, bis ein Abschlusskriterium erfüllt ist, dann werden sie in einem zweiten Schritt verbunden, um einen Strahlungswert zu erzeugen.
Es wird verwendet, um die Wechselwirkung von Licht mit verschiedenen Objekten realistisch zu simulieren.
Insbesondere ist es in der Lage, die Refraktion von Licht durch eine transparente Substanz wie Glas oder Wasser, die diffuse Interreflexion zwischen beleuchteten Objekten, die unterirdische Lichtstreuung in lichtdurchlässigen Materialien und einige der Effekte durch Partikel wie Rauch oder Wasserdampf zu simulieren. Es kann auch auf genauere Simulationen von Licht wie die spektrale Darstellung erweitert werden.
Im Gegensatz zum bidirektionalem Path Tracing, volumetrischen Path Tracing und Metropolis-Lichttransport ist das Photonen Mapping ein „biased“ Rendering-Algorithmus, was bedeutet, dass die Mittelung vieler Renderer mit dieser Methode nicht zu einer korrekten Lösung der Rendergleichung konvergiert. Da es sich jedoch um ein einheitliches Verfahren handelt, kann jede gewünschte Genauigkeit durch Erhöhung der Anzahl der Photonen erreicht werden.
Effekte.
Caustics.
Ein Modell eines Weinglasstrahls, das mit Photonen-Mapping verfolgt wird, um Caustics zu zeigen. Licht, das refraktiert oder reflektiert wird, verursacht Muster, die als Caustics bezeichnet werden und meistens als konzentrierte Lichtflecken auf nahegelegenen Oberflächen sichtbar sind. Wenn Lichtstrahlen zum Beispiel durch ein Weinglas auf einem Tisch gehen, werden sie gebrochen und Lichtmuster auf dem Tisch sichtbar. Das Photon Mapping kann die Pfade einzelner Photonen verfolgen, um zu modellieren, wo die konzentrierten Lichtpunkte erscheinen.
Diffuse Interreflexion.
Diffuse Interreflexion ist sichtbar, wenn Licht von einem diffusen Objekt auf ein anderes reflektiert wird. Das Photonen-Mapping ist besonders geschickt im Umgang mit diesem Effekt, da der Algorithmus Photonen von einer Oberfläche zur anderen reflektiert, basierend auf der bidirektionalen Reflexionsverteilungsfunktion (BRDF) dieser Oberfläche, und somit ist Licht von einem Objekt, das auf ein anderes trifft, ein natürliches Ergebnis des Verfahrens. Die diffuse Interreflexion wurde zunächst mit Radiositätslösungen modelliert. Das Photonen Mapping unterscheidet sich jedoch dadurch, dass es den Lichttransport von der Art der Geometrie in der Szene trennt. Farbabweichungen sind ein Beispiel für diffuse Interreflexion.
Subsurface Scattering ist der Effekt, der sich zeigt, wenn Licht in ein Material eintritt und gestreut wird, bevor es absorbiert oder in eine andere Richtung reflektiert wird. Subsurface Scattering kann mittels Photonen Mapping genau modelliert werden. Dies war die ursprüngliche Art und Weise, wie Jensen es implementierte. Bei stark streuenden Materialien wird die Methode jedoch langsam, und bidirektionale Surface Scattering Reflectance Distribution Funktionen (BSSRDFs) sind in diesen Situationen effizienter.
Anwendung.
Aufbau der Photonen Map.
Beim Photonen Mapping werden von den Lichtquellen Lichtpakete, sogenannte Photonen, in die Szene geschickt. Wann immer sich ein Photon in einer Fläche überschneidet, werden Schnittpunkt und Einfallsrichtung in einem Cache gespeichert, der als Photonen Map gespeichert wird.
Typischerweise werden zwei Photonen Maps für eine Szene erstellt. Eine speziell für die Caustics und eine globale für das andere Licht. Nach dem Durchschneiden der Oberfläche wird durch das Material eine Wahrscheinlichkeit für Reflexion, Absorption oder Transmission/Refraktion gegeben. Eine Monte-Carlo-Methode mit der Bezeichnung „russisches Roulette“ wird verwendet, um eine dieser Aktionen auszuwählen. Wenn das Photon absorbiert wird, wird keine neue Richtung vorgegeben, und die Suche nach diesem Photon endet. Wenn das Photon reflektiert wird, wird die birektionale Reflection Distribution Funktion verwendet, um das Verhältnis der reflektierten Strahlung zu bestimmen. Schließlich, wenn das Photon sendet, wird eine Funktion für seine Richtung gegeben, abhängig von der Art der Übertragung.
Sobald die Photonen Map erstellt wurde (oder während der Konstruktion), ist sie typischerweise so angeordnet, dass sie optimal für den k-nearest Neighbor Algorithmus ist, da die Photonen Look-Up Zeit von der räumlichen Verteilung der Photonen abhängt. Jensen befürwortet die Verwendung von KD-Trees. Die Photonen-Map wird anschließend auf der Festplatte oder im Speicher für die spätere Verwendung gespeichert.
Rendering (2. Durchgang).
In diesem Schritt des Algorithmus wird die im ersten Durchgang erstellte Photonen Map verwendet, um die Strahldichte jedes Pixels des Ausgangsbildes zu schätzen. Für jedes Pixel wird die Szene verfolgt, bis die nächstgelegene Schnittfläche gefunden wird.
An diesem Punkt wird die Rendering-Gleichung verwendet, um die Oberflächenstrahlung zu berechnen, die den Schnittpunkt in Richtung des Strahls verlässt, der auf sie trifft. Um die Effizienz zu erhöhen, wird die Gleichung in vier verschiedene Faktoren zerlegt: direkte Beleuchtung, Spiegelreflexion, Caustics und weiche indirekte Beleuchtung.
Für eine genauere Schätzung der direkten Beleuchtung wird ein Strahl vom Schnittpunkt zu jeder Lichtquelle verfolgt. Solange ein Strahl kein anderes Objekt schneidet, wird die Lichtquelle zur Berechnung der direkten Beleuchtung verwendet. Für eine ungefähre Schätzung der indirekten Beleuchtung wird die Photonen Map zur Berechnung des Strahlungsbeitrags verwendet.
Die Spiegelreflexion kann in den meisten Fällen mit Hilfe von Raytracing-Verfahren berechnet werden (da sie gut mit Reflexionen umgehen kann).
Der Beitrag der Caustics zur Oberflächenstrahlung wird direkt mit Hilfe der Caustics Photonen-Map berechnet. Die Anzahl der Photonen in dieser Map muss ausreichend groß sein, da die Map die einzige Quelle für Caustics-Informationen in der Szene ist.
Für eine weiche indirekte Beleuchtung wird die Strahldichte direkt über die Photonen-Map berechnet. Dieser Beitrag muss jedoch nicht so genau sein wir der Caustics-Beitrag und nutzt daher die globale Photonen-Map.
Berechnung der Strahldichte mit Hilfe der Photonen-Map.
Um die Oberflächenstrahlung an einem Schnittpunkt zu berechnen, wird eine der zwischengespeicherten Photonen-Maps verwendet. Die Schritte sind:
Optimierungen.
Variationen.
Obwohl das Photonen-Mapping hauptsächlich für die Arbeit mit Raytracern entwickelt wurde, kann es auch für die Verwendung mit Scanline-Renderern erweitert werden.
Vielen Dank für Ihren Besuch.