Lichtpfadnotation
Die Lichtpfadnotation wird in der Bildsynthese von Computergrafiken verwendet. Es handelt sich um eine Notation, die die Art des Pfads angibt, den ein Lichtstrahl ausgehend von einer Lichtquelle, mit eventuellen Reflexionen, bis zum virtuellen Beobachter (Augpunkt) nimmt. Die verschiedenen Arten von Lichtpfaden unterscheiden sich darin, ob und in welcher Reihenfolge sie auf diffuse oder spiegelnde Oberflächen treffen.
Notation
BearbeitenDie Lichtpfadnotation wurde 1990 von Paul Heckbert vorgestellt. Sie basiert auf regulären Ausdrücken und verwendet folgende Symbole:
L | bezeichnet die Lichtquelle, |
D | bezeichnet eine diffuse Oberfläche, |
S | („specular“) bezeichnet eine spiegelnde Oberfläche (Licht brechende Körper eingeschlossen), |
E | („eye“) bezeichnet den Augpunkt. |
Weiterhin gelten folgende übliche Symbole der regulären Ausdrücke:
| | steht für „oder“, |
* | steht für eine beliebige Anzahl von Reflexionen an Oberflächen des angegebenen Typs, |
+ | steht für mindestens eine Reflexion, |
? | steht für höchstens eine Reflexion. |
Der Grund für die Unterscheidung zwischen auf diffuse (D) und auf spiegelnde (S) Oberflächen treffende Lichtpfade liegt darin, dass sie zu ihrer Berücksichtigung unterschiedliche Techniken erfordern. Je nach Rendering-Algorithmus können nur bestimmte Lichtpfade simuliert werden.
Der einfachste Fall einer diffusen Oberfläche ist eine lambertsche Fläche, der einfachste Fall einer spiegelnden Oberfläche ein glattes Dielektrikum, dessen Reflexions- und Transmissionsgrade mit Hilfe der Fresnelschen Formeln berechnet werden können. Bei allgemeinen Beleuchtungsmodellen, die auch „glänzende“ Reflexionen umfassen können, ist die Grenze zwischen diffuser und spiegelnder Reflexion nicht klar definiert.
Typische Lichtpfade
BearbeitenDie Lichtpfadnotation kann dazu verwendet werden, die Fähigkeiten von Rendering-Algorithmen anzugeben. Beispiele sind in folgender Tabelle dargestellt.
Lichtpfad | Bedeutung | Beispiele für Algorithmen, die zur Simulation dieser Pfade fähig sind |
---|---|---|
L(D|S)*E | Alle möglichen Lichtpfade: ein Lichtstrahl kann auf eine beliebige Anzahl diffuser oder spiegelnder Oberflächen treffen. Die Simulation aller möglichen Lichtpfade entspricht der globalen Beleuchtung. | Path Tracing |
LD*E | Mögliche diffuse Interreflexion (im Beispiel Pfad 3) | Einfaches Radiosity |
LD?S*E | Eventuell diffuse Reflexion, anschließend beliebige spiegelnde Reflexionen (im Beispiel Pfad 1) | Rekursives Raytracing (nach Whitted) |
LS+DE | Kaustiken (im Beispiel Pfad 2). Diese Lichtpfade können mit klassischen Algorithmen (einfaches Radiosity oder Raytracing) nicht simuliert werden. | Kaustik-Photon-Mapping |
Erweiterung
BearbeitenEric Veach hat die Lichtpfadnotation in seiner Dissertation speziell für E und L so erweitert, dass der Start-/Endpunkt sowie die Menge der ausgehenden/eintreffenden Richtungen spekular oder diffus sein können. Mit diesen erweiterten, regulären Ausdrücken ist es möglich, unterschiedliche Arten von Lichtquellen (z. B. gerichteter Strahler, Punktlichtquelle oder leuchtende Kugel) sowie Kameratypen (z. B. Lochkamera oder Kameras mit Schärfentiefe) zu notieren.
Literatur
Bearbeiten- Paul Heckbert: Adaptive radiosity textures for bidirectional ray tracing. In ACM SIGGRAPH ’90 Proceedings: 145–154. ACM Press, Dallas 1990, ISBN 0-201-50933-4
- Eric Veach: Robust Monte Carlo Methods for Light Transport Simulation. Dissertation, Stanford University 1997 (Online)
- Alan Watt: 3D Computer Graphics, 3. Auflage, S. 281–283. Pearson/Addison-Wesley, Harlow (England) 2000, ISBN 978-0-201-39855-7