photon-mapping - goethe university frankfurt€¦ · (bias) photon-mapping university of bonn &...
TRANSCRIPT
Photon-Mapping
University of Bonn & GfaR mbH
Monte Carlo Ray TracingUniversity of Bonn & GfaR mbH
unterschiedlich stark empfundenes Rauschen in beiden Bildern
hochfrequente und niederfrequente Details der Mehrfachstreuung
einige Szenen konvergieren besonders langsam
kritische Pfade enthalten oft spekulare Reflektionen/Transmissionen
diffus reflektierend spiegelnd
effiziente Berechnung der indirekten Beleuchtung
Methode mit systematischen Fehlern
(Bias) Photon-Mapping
University of Bonn & GfaR mbH
A Practical Guide to Global Illumination using Photon Mapping,
Siggraph 2001 Course 38, August 2001,
Realistic Image Synthesis Using Photon Mapping, A K Peters,
2001
direkte Beleuchtung Direkte+indirekte Beleuchtung
Photon-Mapping
Beobachtung: diffuser Strahlungsaustausch (LD+E): : indirekte Beleuchtung ändert sich relativ langsam (niederfrequent-nf)
Kaustiken (LS+DE): starke „Konzentration“ des einfallenden Lichtes (hochfrequent-hf)
University of Bonn & GfaR mbH
Idee:Caching ( und Wiederverwendung) der indirekten Beleuchtung
verwende spezielle Datenstruktur: Photon Map (kd-Baum)
Speicherung von einfallender indirekter Beleuchtung
nicht direkt an Geometrie gekoppelt
unabhängig von Blickrichtung
nur Einfachstreuung
Einfach + Mehrfachstreuung
nf
hf
Photon-Mapping: Schritte
Photon tracing
Emission
Streuung
Speicherung
University of Bonn & GfaR mbH
Aufbereiten der Photon Map fürs Rendering
Kd-Baum
Schätzung der Leuchtdichte
Schätzung des einfallenden Flusses
Auswerung der BRDF
Filterung
Rendering
Photon Map
Photon tracing - Emission
Aussenden von Photonen von der Lichtquelle
diffuse Punktlichtquelle
gleichmäßiges Sampling auf der Einheitskugel (Rejection Sampling)
sphärische Lichtquelle
generiere wie oben zufällige Richtung auf der Lichtquelle.
University of Bonn & GfaR mbH
generiere wie oben zufällige Richtung auf der Lichtquelle.
erzeuge auf der Halbkugel über der zufällig generierten Position eine
zufällige Richtung.
Für eine diffuse Lichtquelle sollte die Wahrscheinlichkeit der Abstrahlrichtung
proportional zum Cosinus zwischen Normale und Abstrahlrichtung sein.
( , ) (arccos( ), 2 )x yθ φ π=
Photon tracing - Emission
Komplexe Lichtquelle
approximiere die Abstrahlfunktion durch sphärische Dreiecke
verwende gleichmäßiges Abtasten für die sphärischen Dreiecke
University of Bonn & GfaR mbH
Photon tracing - Emission
rejection Sampling für diffuse LQ:
erzeuge gleichmäßig verteilte Zufallsvektoren (Samples) innerhalb eines
Einheitswürfels
falls Vektor innerhalb der Einheitskugel wird Sample verwendet, sonst nicht.
University of Bonn & GfaR mbH
Photon tracing - Emission
„Rezept“ für Sampling Algorithmen(vgl. State of the Art in Monte Carlo Ray
Tracing for Realistic Image Synthesis,
Siggraph 2001 Course 29)
University of Bonn & GfaR mbH
Photon tracing - Streuung
Photonen (beim Photon Mapping) propagieren durch Lichtquelle abgegebene Leistung (Φ [W]).
Strahlen dagegen Radianz (L [W/sr/m2])
Leistung eines einzelnen Photons hängt von der Abstrahlrichtung und von der Anzahl insgesamt ausgesandter Photonen ab
Auftreffen auf spiegelnde Flächen
University of Bonn & GfaR mbH
Auftreffen auf spiegelnde FlächenPhoton wird in Richtung des reflektierten Strahls weitergeleitet.
Auftreffen auf andere Flächen (mit diffusem Anteil) aktueller Zustand des Photons (Energie,Ort,Richtung) wird gespeichert
Energie des Photons wird gemäß BRDF abgeschwächt und eine neue Richtung stochastisch ausgewählt.
ggf. Verwendung von Importance-Sampling
Photon tracing - Streuung
wünschenswerte Zieleunwichtige Photonen nicht weiterverfolgen
alle gespeicherten Photon soll ungefähr gleiche Leistung repräsentieren um Varianz zu minimieren
Realisierung: Russian Roulette
Beispiel: Oberfläche mit diffusem Reflektionskoeffizient d und
University of Bonn & GfaR mbH
Beispiel: Oberfläche mit diffusem Reflektionskoeffizient d und spekularem Reflektionskoeffizienten s. Erzeuge identisch verteilte Zufallszahl ξ ∈ [0,1]
Photon tracing - StreuungUniversity of Bonn & GfaR mbH
“Cornell Box” Mit Glass und Chrome Kugel. Links: Ergebnis nach Ray Tracing mit
direkter Beleuchtung und spekularer Reflektion und Transmission. Rechts: die
Photonen in der zugehörigne Photon Map.
Speichern der PhotonenPhotonen werden nur gespeichert, wenn sie auf nicht spiegelnde
Flächen treffen.
University of Bonn & GfaR mbH
Dabei werden 65536 unterschiedliche Richtungen gespeichert.
wird keine Kompression der R,G,B – Werte verwendet, so können einfach 3 float-Werte verwendet werden.
Achtung: Photonen werden nicht in der Geometrie gespeichertes wird ein Kd-Baum als Datenstruktur zur Speicherung der Photon Map verwendet
Speicherung der Photonen bezüglich der Raumlkoordinate in
einem balancierten kd-Baum
Photon Map
8
4 52
University of Bonn & GfaR mbH
In einem balancierten kd-Baum mit N Photonen kann ein Photon
in O(log N) Zeit gefunden werden.wichtig für effiziente Nachbarschaftssuche
3
3 6 4 2
1
6
4 5
7
2
1 7 5 8
Suchen der Photonen
Nutze den kd-Baum,
um die n benachbarte
Photonen zu einem Punkt x
auf der Oberfläche zu finden.
University of Bonn & GfaR mbH
Schätzung des der Irradianz aus Photonendichte (in Umgebung des Punktes)
Schätzung der Irradianz
),( oxL ω)(xnr
x
University of Bonn & GfaR mbH
2∆ =A r π),,(
1),,(),(
1 12 oj
n
j
n
j
BRDFj
Kugel
ojBRDF
j
o xfr
xfA
xL ωωπ
ωωω ∑ ∑= =
∆Φ=∆
∆Φ≈
∫∫Φ
== ωωθ
θωθω dfddA
ddfLxL BRDFBRDFio
coscoscos),(
2
Kugelr
x
iE
j
iE
Filterung
Problem: vollständige „Verschmierung“ der geschätzten Irradianz
über Kugelradius
alle Photonen innerhalb des Suchvolumens werden gleich gewichtet
Eine mögliche Verbesserung ist es, die Photonen entsprechend zu
filtern, d.h. Photonen in der Nähe der betrachteten Position x höher
University of Bonn & GfaR mbH
filtern, d.h. Photonen in der Nähe der betrachteten Position x höher
zu gewichten.
Cone Filter (d Abstand von zum Photon, k Konstante, r Radius):
Filterung
Gauss Filter (d Abstand von zum Photon, α=0.918,β=1.953, Radius r):
University of Bonn & GfaR mbH
pgoi
n
i
BRDFio wxfxL ),,(),(1
ωωω ∑=
∆Φ≈
Rendering
Die Photon Map kann mit Hilfe eines einfachen Ray Tracers
visualisiert werden:
auf diffusen Flächen wird die reflektierte Leuchtdichte aus der Photon Map
geschätzt
auf spiegelnden Flächen wird Ray-Tracing verwendet
University of Bonn & GfaR mbH
auf spiegelnden Flächen wird Ray-Tracing verwendet
mit dieser einfachen Strategie werden prinzipiell alle Lichtpfade zwischen den
Lichtquellen und dem Auge berücksichtigt:
L(S|D)*D: Photon Map
(LS*E)|(DS*E): Ray-Tracing
Alternative: Betrachte alle gespeicherten Photonen als Lichtquellen
und verwende Path-Tracing
Dieser Photon Gathering Ansatz kann als spezielles bidirektionales Path
Tracing aufgefaßt werden.
Hybrider Ansatz
Kaustiken sind besonders problematisch
(Varianz!)
verwende Path Tracer für:
direkte Beleuchtung
University of Bonn & GfaR mbH
direkte Beleuchtung
indirekte Beleuchtung (außer Kaustiken)
Kaustiken mit Photonmap
Renderinggleichung entsprechend aufgespalten
werden:
Rendering
Photon Map ist unabhängig vom Betrachter!
spalte BRDF in spekularen und diffusen Anteil auf:1
( , ) ( , ) ( , )
( , ) ( , , ) ( , ) cos( )
o r e r r r
e r r i i i i i
L x L x L x
L x x L x d
ω ω ω
ω ρ ω ω ω θ ωΩ
= +
= + ∫
University of Bonn & GfaR mbH
spalte einfallende Leuchtdichte auf
, , ,
( , ) ( , ) ( , ) ( , )i p i l p i c p i d p
direktesLicht Kaustik diffus reflektiert
L x L x L x L xω ω ω ω= + +14243 14243 14243
( , , ) ( , , ) ( , , )r i s r i d r i
x x xρ ω ω ρ ω ω ρ ω ω= +
Rendering
Damit ergibt sich:
1
,
( , ) ( , , ) ( , ) cos( )
( , , ) ( , ) cos( )
r r r i i i i
r i i l i i i
L x x L x d
x L x d
ω ρ ω ω ω θ ω
ρ ω ω ω θ ω
Ω
=
=
∫
∫
University of Bonn & GfaR mbH
( )1
1
1
1
,
, ,
,
,
( , , ) ( , ) cos( )
( , , ) ( , ) ( , ) cos( )
( , , ) ( , ) cos( )
( , , ) ( , ) cos( )
r i i l i i i
s r i i c i i d i i i
d r i i c i i i
d r i i d i i
x L x d
x L x L x d
x L x d
x L x d
ρ ω ω ω θ ω
ρ ω ω ω ω θ ω
ρ ω ω ω θ ω
ρ ω ω ω θ ω
Ω
Ω
Ω
Ω
=
+ +
+
+
∫
∫
∫
∫ i
Rendering
spalte Photon Map auf in:
Caustic Map (LS+D Pfade)
mind. eine spekulare Reflektion bevor diffuse Fläche getroffen
wird
University of Bonn & GfaR mbH
wird
Pfad terminiert, falls diffuse Fläche getroffen wird
Berechnung durch Sampling der spekularen Flächen (vgl.
Light-Source Sampling)
Globale Photon Map (restliche Pfade)
Rendering
Direkte Beleuchtung( )
1
1
1
1
, ,
, ,
,( , ) ( , , ) ( , ) ( , ) cos(( , , ) )
( , , ) ( , ) cos
( , ) cos( )
( ) ( , , ) ( , ) cos( )
r r s r i i c i i d i i i
d r i i
r i i l i i i
c i i i d r i i d i i i
L x x L x L x d
x L x d x L x d
x L x dω ρ ω ω ω ω θ ω
ρ ω ω ω θ ω ρ ω ω ω
ρ ω ω ω θ ω
θ ω
ΩΩ
Ω Ω
= + +
+ +
∫ ∫
∫ ∫
University of Bonn & GfaR mbH
mit Ray-Tracing Methoden und Lichtquellen Sampling
Rendering
spekulare Reflektion
( )1
1 1
1
, ,
, ,
,( , , ) ( , ) ( , ) cos(( , ) ( , , ) ( , ) cos( )
( , , ) ( , ) cos( ) ( , , ) ( , ) cos( )
)r r r i i l i i
d r i i c
i s r i i c i i
i i i d r i i d i i
d i
i
i ix L x L x dL x x L x d
x L x d x L x d
ω ρ ω ω ω θ ω
ρ ω ω ω θ
ρ ω ω ω ω θ ω
ω ρ ω ω ω θ ω
ΩΩ
Ω Ω
= +
+
+
+
∫
∫ ∫
∫
University of Bonn & GfaR mbH
Da dieser Term sehr stark von der BRDF abhängt,
müßte man die Photon Map sehr hoch auflösen.
daher: vollständig mit Ray-Tracing Methoden und
BRDF Sampling
Rendering
Kaustiken
( )1 1
,
, , ,
,
( , ) ( , , ) ( , ) cos( ) ( , , ) ( , ) ( , ) cos(
( ,
)
( , , ), ) ( , ) ( , ) cos(os( ) )c
r r r i i l i i s r i i c i i d i i i
d r i i d i i i
i
d r i i c i i ix L
L x x L x d x L x L x d
x L xx d dρ ω
ω ρ ω ω ω θ ω ρ ω ω ω ω θ ω
ρ ω ω ωω ω θω ω θ
Ω
Ω
Ω
Ω
= + +
+ +
∫
∫
∫
∫
University of Bonn & GfaR mbH
Durch Schätzen der Leuchtdichte in der Photon Map
1 1Ω Ω
Rendering
mehrfache diffuse Reflektion
( )1 1
, , ,
, ,
( , ) ( , , ) ( , ) cos( ) ( , , ) ( , ) ( , ) cos( )
( , , ( , , ) ( , ) co) ( , ) cos( ) s( )
r r r i i l i i s r i i c i i d i i i
d r i i c i
i
d r i i d i ii i i
L x x L x
x
d x L x L x d
x L x d L x d
ω ρ ω ω ω θ ω ρ ω ω ω ω θ ω
ρ ω ω ρ ω ω ω θ ωω θ ω
Ω Ω
= + +
+ +
∫ ∫
∫ ∫
University of Bonn & GfaR mbH
genaue Berechnung: Verwende MC-Ray Tracing. Verwende optional Globale Photon Map um Importance Sampling zu verbessern.
approximativ: Schätze der Irradianz aus globaler Photon Map.
ggf. Final Gathering: Erstes Streuevent mit MC-Ray Tracing, danach Schätzung der Irradianz aus Photon Map.
1 1
, ,d r i i c i d r i i d i ii i i
ΩΩ
∫ ∫
Photon-Mapping
Resultate:
Fehler dieser Schätzung sind niederfrequent, im Gegensatz zum
hochfrequenten Rauschen des MC-Ray Tracing.
oft schnellere Konvergenz als MC-Ray Tracing
Methode ist nicht mehr rein stochastisch (unbiased), d.h. der Erwartungswert
University of Bonn & GfaR mbH
Methode ist nicht mehr rein stochastisch (unbiased), d.h. der Erwartungswert
beim Photon-Mapping stimmt nicht unbedingt mit dem korrekten Resultat
überein.
ErgebnisseUniversity of Bonn & GfaR mbH
Ray Tracing mit scharfen Schatten Ray Tracing mit weichen Schatten
ErgebnisseUniversity of Bonn & GfaR mbH
Mit Kaustiken Vollständige globale Lösung, 200000
Photonen. Erst jetzt ist die Decke hell!
ErgebnisseUniversity of Bonn & GfaR mbH Globale Photon Map mit 100 Photonen
zur Schätzung der Irradianz (ohne Final Gathering)
Globale Beuchtung mit 500 Photonen zur
Schätzung der Irradianz (ohne Final Gathering)
ErgebnisseUniversity of Bonn & GfaR mbH
Insgesamt 500000 Photonen, 100 Photonen zur Berechnung der Leuchtdichte, 20000 Dreicke
zur Modellierung der Wasseroberfläche, 11 Minuten Rechenzeit.
ErgebnisseUniversity of Bonn & GfaR mbH