Photon Mapping ist ein von Henrik Wann Jensen 1995 veröffentlichter Algorithmus der Bildsynthese, der vornehmlich als Erweiterung von Raytracing-basierten Verfahren genutzt wird. Das Ziel von Photon Mapping ist es, die globale Beleuchtung einer Szene effizient zu ermitteln und somit realistische Bilder bei geringerem Zeitaufwand zu erzeugen. Photon Mapping zählt zu den Particle-Tracing-Methoden.
Verfahren
Bei Photon Mapping werden vor dem eigentlichen Rendervorgang so genannte „Photonen“, die eine bestimmte Leistung (Strahlungsfluss) transportieren, von den Lichtquellen in die Szene „geschossen“. Geometrisch entspricht dies dem Raytracing von der Lichtquelle ausgehend. Ein Photon wird dabei maßgeblich durch seine Position, die Richtung, aus der es eingestrahlt wird, und durch seinen Strahlungsfluss abstrahiert. Trifft ein solches von der Lichtquelle ausgehendes Photon eine Oberfläche, kann es reflektiert, gestreut, gebrochen, absorbiert oder in der Photon Map gespeichert werden, wenn es auf diffus reflektierende Oberflächen trifft. Dabei wird eventuell die Leistung des Photons verändert. Die Photon Map (selten: „Photonenkarte“) ist eine von der Szenengeometrie unabhängige Datenstruktur (meist ein dreidimensionaler kd-Baum). Die in ihr gespeicherten Photonen können eine Abschätzung über den an der Position des Photons eingehenden Strahlungsfluss abgeben. Den gesamten Vorgang nennt man Photon Tracing.
Der verwendete Begriff „Photon“ stimmt nur insoweit mit dem physikalischen Begriff überein, als Strahlungsfluss transportiert wird. Es handelt sich beim Photon Mapping nicht um eine quantenphysikalisch korrekte Simulation der Lichtausbreitung. Stattdessen abstrahiert ein „Photon“ beim Photon Mapping eine große Anzahl physikalischer Photonen, deren Energie pro Zeitspanne zur Leistung des „Photons“ aufsummiert wird. Quantenphysikalische Vorgänge werden dabei nicht berücksichtigt, da zur Erzeugung realistisch aussehender Bilder die geometrische Optik meist ausreicht.
Die so erstellte Photon Map kann auf verschiedene Art genutzt werden. Gebräuchlich ist das Verfahren, bei dem beim Rendering an jedem Punkt, an dem ein Strahl während des Raytracings auf eine Oberfläche trifft, die indirekte Beleuchtung durch die Dichte und Leistung der Photonen in der Photon Map in der Nähe des jeweiligen Punktes ermittelt wird. Durch Addition der so ermittelten indirekten Beleuchtung und der durch diffuses Raytracing ermittelten direkten Beleuchtung lässt sich die globale Beleuchtung einer Szene ermitteln. Daneben lässt sich die Photon Map zur Beschleunigung von Path Tracing verwenden. Zur effizienten Simulation von Kaustiken werden diese in einer unabhängigen Caustic Map gespeichert.
Der Unterschied zu anderen von der Lichtquelle aus arbeitenden Verfahren wie Light Ray Tracing oder früheren Particle-Tracing-Methoden besteht darin, dass die indirekte Beleuchtung nur einmal in einem Arbeitsgang ermittelt und von der Geometrie unabhängig gespeichert wird.
Für Photon Mapping gibt es weitere Anwendungen und Erweiterungen wie Importon Mapping und Volumenstreuung.
Unterstützung
Photon Mapping wird heute von den meisten großen Renderern unterstützt. Der verbreitetste Renderer ist Mental Ray, der in vielen großen 3D-Softwarepaketen standardmäßig integriert ist. Auch andere Renderer wie POV-Ray, YafaRay, V-Ray, Maxwell Render und LuxRender unterstützen Photon Mapping.
Literatur
- Henrik Wann Jensen, Realistic Image Synthesis Using Photon Mapping, AK Peters 2001, ISBN 1-56881-147-0.