Photon-Mapping - Goethe University Frankfurt€¦ · (Bias) Photon-Mapping University of Bonn &...

Post on 14-Jun-2020

17 views 0 download

Transcript of Photon-Mapping - Goethe University Frankfurt€¦ · (Bias) Photon-Mapping University of Bonn &...

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