V 14 InstantRadiosity [Kompatibilitätsmodus] · *Genauer gesagt kommt die Methode des Instant...

68
Instant Radiosity 14. Vorlesung Photorealistische Computergrafik Photorealistische Computergrafik Thorsten Grosch

Transcript of V 14 InstantRadiosity [Kompatibilitätsmodus] · *Genauer gesagt kommt die Methode des Instant...

Instant Radiosity

14. Vorlesung Photorealistische ComputergrafikPhotorealistische Computergrafik

Thorsten Grosch

EinleitungEinleitungWas wir bisher können– Globale Beleuchtungsverfahren auf der CPU

Ray Tracing, Radiosity, Photon Mapping, …K kt b lKorrekt, aber langsam

– Shader ProgrammierungSchnelle Schatten– Schnelle Schatten

HeuteHeute– Umformulierung des Globalen

Beleuchtungsproblems, so dass eine Berechnung mit Beleuchtungsproblems, so dass eine Berechnung mit interaktiver Geschwindigkeit (> 1fps) auf der GPU möglich ist

T. Grosch - 2 -

Instant RadiosityInstant Radiosity[Keller 1997]Idee: Indirektes Licht wird durch viele virtuelle PunktlichtquellenIdee: Indirektes Licht wird durch viele virtuelle Punktlichtquellen (VPLs) beschriebenDesigner verwenden diese Idee manchmal– z.B. rote Lichtquelle von Hand auf rote Wand setzen, um Color Bleeding

zu simulieren

Hier allerdings automatische und korrekte Verteilung der VPLs g gKeine Patches, kein Meshing, …Annäherung an globale BeleuchtungssimulationWeiche Schatten / indirektes Licht Nur diffuse OberflächenFür Echtzeitanwendungen ausgelegtFür Echtzeitanwendungen ausgelegt

Die Bezeichnung VPL ist nicht wirklich korrekt, da hier eigentlich kleine Flächenlichtquellen (Lambert Emitter) verwendet werden, die Bezeichnung VPL ist aber gängig

Instant RadiosityInstant RadiosityZwei Schritte

– 1. Verteilung der VPLs aus der Lichtquelleähnlich zu Photon MappingMeistens auf der CPU

– 2. Zeichnen der Szene mit allen VPLs als LichtquellenGPU

T. Grosch - 4 -

Instant Radiosity – Ablaufsta t ad os ty b auWähle N Positionen auf (Flächen-)Lichtquelle aus

φφ

T. Grosch - 5 -

AblaufAblaufBetrachte jeden Punkt als Punktlichtquelle (bzw. kleinen L b t E itt )Lambert Emitter)Beleuchte Szene von jedem Punkt aus

NVPLφφ =

θπφθ cos)( VPL

VPLI =

N

T. Grosch - 6 -

AblaufAblaufVon einer bestimmten Anzahl von Punkten aus wird ein St hl ( Li ht tik l“) i di S f l tStrahl („Lichtpartikel“) in die Szene verfolgt– vgl. Photon Mapping, Richtung wird z.B. über cos-Verteilung

bestimmtbestimmt

T. Grosch - 7 -

Ablauf- VPLsAblauf VPLsPlatziere Punktlichtquelle (Virtual Point Light, VPL) an T ff ktTrefferpunkt– Die VPL erhält die Objektfarbe

VPLVPL φρφ ⋅=′

T. Grosch - 8 -

AblaufAblaufNutze jede VPL zur Beleuchtung der Szene– Licht und Schatten

z.B. Shadow Volume oder Shadow Map mit HemiCube

θφθ cos)( VPLVPLI

′=′

π)(VPL

T. Grosch - 9 -

AblaufAblaufVon einer bestimmten Anzahl (Russian Roulette mit ) von VPLs

i d i St hl i di S h (C i V t il )ρ

wird ein Strahl in die Szene verschossen (Cosinus-Verteilung)Am Schnittpunkt wird eine neue VPL erstelltBeleuchtungsvorgang wird wiederholtBeleuchtungsvorgang wird wiederholt

φφ VPLVPL

′=′′

ρφVPL

T. Grosch - 10 -

Direktes LichtDirektes Licht

T. Grosch - 11 -

Indirektes LichtIndirektes Licht1. Indirektion

2. Indirektion

T. Grosch - 12 -

ErgebnisseErgebnisse

N 10 N 20 N 40N=10 N=20 N=40

T. Grosch - 13 -

Rendering der VPLsRendering der VPLsDie Beleuchtung durch eine VPL wird jeweils einzeln d h füh t d h fü j d VPL i d di Sdurchgeführt, d.h. für jede VPL wird die Szene neu gerendert und nur diese VPL ist dann aktivJedes dieser Bilder trägt zum Gesamtergebnis bei

1Jedes dieser Bilder trägt zum Gesamtergebnis beiBilder werden gewichtet aufsummiertÄh li h i M t C l I t ti *

N

Ähnlich einer Monte-Carlo Integration*– Jedes Rendern einer VPL entspricht einer Stichprobe

*Genauer gesagt kommt die Methode des Instant Radiosity aus dem Bereich der Quasi Monte-Carlo Methoden Bei diesen werdenBereich der Quasi Monte-Carlo Methoden. Bei diesen werdenZufallszahlen durch sogenannte „low-discrepancy“ Sequenzen ersetzt (Hammersley, Halton, …), welche eine bessere Konvergenzrate ermöglichen als „reine“ Zufallszahlen.

T. Grosch - 14 -

Erzeugung der ZufallszahlenBisher immer durch einfache rand()-FunktionAuch mit Stratification können evtl noch “Klumpen”Auch mit Stratification können evtl. noch Klumpen entstehenBesser sind sog. Quasi-Monte-Carlo MethodenBesser sind sog. Quasi Monte Carlo Methoden

T. Grosch - 15 -

Quasi Monte CarloHalton-Sequenz (N-dimensional)

( )– hr(m): radical inverse

( ))(),...,(),(),( 532 mhmhmhmhNpm =ξ

Bitmuster von m (zu Basis r) an Dezimalpunkt spiegelnh2(2610)= h2(110102)=0.010112=11/32h (19 ) h ( 201 ) 0 102 11/27h3(1910)= h3( 2013)=0.1023=11/27

– pN: N-te Primzahl

– Liefert gleichverteilte “Zufallszahlen”– Beliebige Länge der Sequenz möglichBeliebige Länge der Sequenz möglich– Bessere Verteilung als Stratification

T. Grosch - 16 -

Halton Sequenz: Beispiel (1D)Halton Sequenz: Beispiel (1D)i Bitmuster gespiegelt h2(i)1 12 .12 = 1/2 0.52 102 .012 = 1/4 0.253 11 11 = 1/2 + 1/4 0 753 112 .112 = 1/2 + 1/4 0.754 1002 .0012 = 1/8 0.1255 1012 .1012 =1/2 + 1/8 0.6256 1102 .0112 =1/4 + 1/8 0.375

10

h2(1)h2(2) h2(3)h2(4) h2(5)h2(6) h2(7)

T. Grosch - 17 -

Beispiel Halton Sequenz 2Dp qz.B. Position auf der Lichtquelle wählenDas i-te von N Partikeln, das von der Lichtquelle aus verschossen wird, startet auf Position der Flächenlichtquelle

))(),(( 32 ihihp =Flächenlichtquelle

Die ersten 100 Punkte der 2D-Halton Sequenz

T. Grosch - 18 -

Halton SequenzHalton-Sequenz (N-dimensional)

( ))()()()( mhmhmhmh=ξ

– Gleichverteilung:Höherwertige Bits ändern sich schneller als niederwertige

( ))(),...,(),(),( 532 mhmhmhmhNpm =ξ

Höherwertige Bits ändern sich schneller als niederwertigeZunächst werden alle Intervalle 2-k besucht bevor die Intervalle 2-(k+1) besucht werden

Option: Hammersley Sequenz (N dimensional)Option: Hammersley-Sequenz (N-dimensional)– 1. Koordinate regulär, danach Halton Sequenz

( ))(),...,(),(),(,/ 532 mhmhmhmhNmNpm =ζ (siehe auch PBRT Buch)

T. Grosch - 19 -

Anzahl Virtual Point LightsAnzahl Virtual Point LightsWie viele Partikel werden jeweils weiterverfolgt?Durchschnittlicher Reflexionsgrad der gesamten Szene bestimmen

K

∑∑ == K

k k

K

k kkd

A

A

1

1 ,ρρ

∑ =k k1

Von N Startpartikeln auf der Lichtquelle werdenp qals indirekte als inindirekte

⎣ ⎦Nρ⎣ ⎦N2ρusw.

Lichtquellen genutzt bzw. weiterverfolgt

⎣ ⎦ρ

q g g

T. Grosch - 20 -

Anzahl Virtual Point LightsAnzahl Virtual Point Lights55.0=ρ

[Oliver Knoll][Oliver Knoll]

T. Grosch - 21 -

Beleuchtung durch VPLsgJede VPL hat die max. Lichtstärke

πφVPL

VPLI =

Beleuchtungsstärke an p durch VPL ergibt sich a s

π

aus:VPL

pp Ipp

pE VPL ⋅−

= 2||||coscos

)(θθ

)()( pEpLπρ

=

Artefakte können entstehen, fallsh kl i i

VPLpp ||||

2||||

π

sehr klein istMögliche Lösung:

2|||| VPLpp −

Clamping auf MinimalabstandAber: Licht geht verloren

[PBRT]T. Grosch - 22 -

Schatten der VPLsJede VPL wirft einen (indirekten) Schatten

Hier können Shadow Maps oder Shadow Vol mes er endet erdenVolumes verwendet werden

– Problem bei Shadow VolumesLangsam bei vielen VPLs

– Problem bei Shadow MapsNur für SpotlichtHemicube 5 x Rendern

Halbraum mit einer Projektion abtasten…T. Grosch - 23 -

Hemisphärische Projektion– z.B. Lambert Projektion

1 Projektion auf Halbkugel-z

p jVertex

– 1. Projektion auf Halbkugel– 2. senkrechte Projektion

– „Fischauge“– Abbildung des gesamten

Halbraums auf Kreisfläche– Kann als Vertex Program

1

2x

gimplementiert werden, aber…

– Nicht-lineare Projektion– Gerade Linie wird zu gebogener ⎟

⎞⎜⎛

⎟⎞

⎜⎛ ′ xx

1

xy

Gerade Linie wird zu gebogener Linie in Projektion

– Grafik Hardware zeichnet nur gerade Linien (!)

⎟⎟⎟

⎠⎜⎜⎜

⎝++

=⎟⎟⎟

⎠⎜⎜⎜

⎝ ′′

zy

zyxzy

222

11.

g ( )– Geometrie muß tesseliert

werden (speziell in Nähe der Kamera)

0=′z

zz =′

2.

mit funktioniert der Tiefenvergleich

Problem: Kein Tiefenvergleich mehr

zz =mit funktioniert der Tiefenvergleich

T. Grosch - 24 -

Hemisphärische Projektion– Transformation 1 & 2 durch

Modelview-z

p jVertex

Modelview– Projektion auf glOrtho setzen

– Clipping von gewünschtem B i h [ 1 1] [ 1 1] [ f]Bereich [-1,1] x [-1,1] x [n, f]

– Shadow Mapping

1

2xpp g

– Hier ist der Vergleich mit der echten Distanz genauer als einfach nur den z-Wert zu ⎟

⎞⎜⎛

⎟⎞

⎜⎛ ′ xx

1

xy

einfach nur den z Wert zu nehmen

Alt ti P j kti

⎟⎟⎟

⎠⎜⎜⎜

⎝++

=⎟⎟⎟

⎠⎜⎜⎜

⎝ ′′

zy

zyxzy

222

11.

– Alternativ-Projektionen– Paraboloid [Heidrich & Seidel 1998]

– Single Plane [Sillion 1995]

0=′z

zz =′

2.

mit funktioniert der Tiefenvergleich

Problem: Kein Tiefenvergleich mehr

g [ ] zz =mit funktioniert der Tiefenvergleich

T. Grosch - 25 -

Hemisphärische Projektion

Wä d i d i t li t Wä d h h t li tWände zu niedrig tesseliert Wände hoch tesseliert

T. Grosch - 26 -

Shadow Map Atlas

Mehrere Shadow Maps in einerMehrere Shadow Maps in einer Textur– Kein Texturwechsel nötig

Viewport pro VPL anpassenp p p

Bsp:Bsp: – Einfache Cornell Box mit 64 VPLs– 512 x 512 Atlas– 8 x 8 = 64 Shadow Maps– 64 x 64 Pixel pro Shadow Map

T. Grosch - 27 -

RenderinggDie Verteilung der VPLs in der Szene erfordert einen i l R Tsimplen Ray-Tracer

Die Beleuchtung durch die VPLs kann mit Hilfe von Ray-Tracing aber auch mit Scan Line Rendering (OpenGL)Tracing, aber auch mit Scan-Line Rendering (OpenGL) geschehenOpenGLOpenGL– Für jede VPL

Punktlichtquelle mit Hilfe von glLightfv( ) definierenPunktlichtquelle mit Hilfe von glLightfv(…) definierenSchatten z.B. mit Hilfe von Shadow-MappingSzene rendernBild mit gewichten

– Bilder aufaddieren (z.B. mit Hilfe des Accumulation-Buffers)N1

T. Grosch - 28 -

Rendering auf modernen GPUse de g au ode e G UsStichwort „Deferred shading“Szene nur einmal in verschiedene Texturen rendern– Weltkoordinaten– Normalen– Material– …

Beleuchtung im Bildraum (also auf den Texturen) durchführendurchführenBeleuchtung somit unabhängig von der SzenenkomplexitätSzenenkomplexität

T. Grosch - 29 -

Deferred Shadingg

[Hargreaves][Hargreaves]

[Klint][Klint]

T. Grosch - 30 -

Instant Radiosity Ergebnis

[Keller][Keller]

T. Grosch - 31 -

Erweiterung:e te u gBidirektionales Instant Radiosity [Segovia et al. 2006]

– Verteilung der VPLs abhängig von der Betrachterposition– Interessant vor allem wenn mehrere Indirektionen notwendig

T. Grosch - 32 -

Erweiterung: Dynamische LichtquelleErweiterung: Dynamische Lichtquelle[Laine et al. 2007]

St ti h S it i b t Li ht llStatische Szene mit einer bewegten LichtquelleIdee:

E i i d VPL i ih Sh d M i d d– Existierende VPLs mit ihren Shadow Maps wiederverwenden– Nur wenige VPLs löschen und neu erzeugen pro Bild

Zeitlich köhärent (kein Flackern) aber evtl leicht zeitverzögert– Zeitlich köhärent (kein Flackern), aber evtl. leicht zeitverzögert

T. Grosch - 33 -

Ergebnis

[L i S i K tk L hti Ail EGSR 2007][Laine, Saransaari, Kontkanen, Lehtinen, Aila, EGSR 2007]

49 fps, 80.000 DreieckeAber: keine dynamischen ObjekteAber: keine dynamischen Objekte…

T. Grosch - 34 -

Imperfect Shadow Maps

1Tobias Ritschel 1Thorsten Grosch 2Min H Kim

p p

1Tobias Ritschel 1Thorsten Grosch 2Min. H. Kim1Hans-Peter Seidel 3Carsten Dachsbacher 2Jan Kautz

MPI Informatik1 University College London2 University Stuttgart3MPI Informatik1 University College London2 University Stuttgart3

Siggraph Asia 2008

T. Grosch - 35 -

MotivationMotivationBisher haben wir nur statische Geometrie betrachtetFalls sich ein Objekt bewegt, müssen allej g ,Shadow Maps neu berechnet werdenDie Generierung der Shadow Maps ist derDie Generierung der Shadow Maps ist der langsamste Teil im Instant Radiosity VerfahrenWie bekommt man schnelle Shadow Maps ?Wie bekommt man schnelle Shadow Maps ?

T. Grosch - 36 -

Mit/ohne indirektem LichtLokale Beleuchtung Globale Beleuchtung

T. Grosch - 37 -

Dynamische Szene

Indirekte Sichtbarkeit ändert sich…

Direct

Frame t+1

Direct

Frame t

Directlight

Directlight

Indirekter Schatten Kein indirekter Schatten

T. Grosch - 38 -

Instant Radiosity (One bounce)

Direct light

VPLVPL

Indirectlight

VPLVPL

light

Virtual point lightVirtual point light

T. Grosch - 39 -

Instant Radiosity in Sponza Scene

Hier sind 30 VPLs. Fü Q li ä b h 1000Für gute Qualität braucht man ca.  1000…

T. Grosch - 40 -

Indirektes Licht und SchattenIndirektes Licht und SchattenErste Beobachtung– Indirektes Licht ist oft „weich“ und ändert sich nur

langsamDie indirekten Schatten sind meistens weich nur– Die indirekten Schatten sind meistens weich, nur selten harte Schattenkanten

Erste Idee– Verwende Shadow Maps mit niedriger AuflösungVerwende Shadow Maps mit niedriger Auflösung

(z.B. 64 x 64) zur Beschleunigung– In vielen Fällen ist der Fehler kaum wahrnehmbar– Dummerweise wird die Simulation dadurch kaum

schneller…

T. Grosch - 41 -

Beispiel Rechnung

Wir verwenden z.B.1024 VPL j d it i Sh d– 1024 VPLs, jede mit einer Shadow Map mit 32 x 32 Auflösung

– Ein 3D Modell mit 100.000 Polygonen Somit benötigen wir– ~100 Millionen Transformationen (die

gesamte Szene muß für jede VPL

32

gesamte Szene muß für jede VPL transformiert werden)

– Aufgrund der niedrigen Auflösung werden ca 100 Polygone auf daswerden ca.100 Polygone auf das gleiche Texel abgebildet (100 x overdraw)i f ht 3D M d ll

32

vereinfachtes 3D Modell– Punkt-basiertes Modell, da Punkte am

schnellsten mit der Grafik Hardware i h t d kögezeichnet werden könnn

T. Grosch - 42 -

Imperfect Shadow Maps

Beobachtungen:Beobachtungen:– Shadow Maps mit geringer Qualität (imperfect) sind

ausreichend für viele, sich überlagernde, VPLsausreichend für viele, sich überlagernde, VPLs– Shadow Map mit niedriger Auflösung (32 x 32)– Vereinfachte Geometrie (Punkte)Vereinfachte Geometrie (Punkte)

Vier Schritte1 VPL Generierung1. VPL Generierung2. Punkt-basierte Shadow Maps3 P ll h (Lü k füll )3. Pull-push (Lücken füllen)4. Shading

T. Grosch - 43 -

Step 1 VPL GenerierungStep 2 Point based Shadow MapsStep 2 Point based Shadow MapsStep 3 Pull pushStep 4 Shading

T. Grosch - 44 -

Step 1: VPL GenerierungStep 1: VPL GenerierungNur eine diffuse Reflexion– Die erste Indirektion ist perzeptuell die wichtigste, höhere

Indirektonen können oft durch einen Ambienten Term abgeschätzt werden (und sind oft schwieriger zu berechnen)g ( g )

Die VPLs können in diesem Fall auch direkt auf der GPU mit sog. Reflective Shadow Maps bestimmt werden [Dachsbacher 2006] – Zunächst wird eine Cube Map aus Sicht der Lichtquelle

gezeichnet und ein Deep Framebuffer“ angelegt (Positiongezeichnet und ein „Deep Framebuffer angelegt (Position, Normale und direktes Licht)

– Das direkte Licht wird als Dichtefunktion zur VPL Generierung d t (i CDF)verwendet (inverse CDF)

– Position und Normal Buffer werden zur Positionierung und Orientierung der VPL verwendetO e t e u g de e e det

T. Grosch - 45 -

Step 1: VPL generation [Dachsbacher 2006]

No direct light

Direct lightVPLs!

No VPLs!

T. Grosch - 46 -

Step 1 VPL generationStep 2 Punkt basierte Shadow MapsStep 2 Punkt-basierte Shadow MapsStep 3 Pull pushStep 4 Shading

T. Grosch - 47 -

Step 2: Punkt-basierte Shadow Maps

Ziel: ca. 1000 Shadow MapsZiel: ca. 1000 Shadow Maps müssen pro Frame neu generiert werden– Bei einem Polygonmodell dauert

das ca. 500ms (“Sponza”, 70k polys)polys)

– Mit einem Punktmodell wird es ca. 10 x schneller, wobei die Qualität k t b l bl ibtakzeptabel bleibt

T. Grosch - 48 -

Step 2: Punkt-basierte Shadow Maps

ImperfectClassic ImperfectSmaller points

Less points

T. Grosch - 49 -

Step 2: Punkt-basierte Shadow Maps

Vorverarbeitung:g– Gleichverteilte Punkte auf der

Oberfläche der Szene8000 P kt VPL– ~8000 Punkte pro VPL

– Andere Punktmenge pro VPL verwenden

Anderer Fehler in jeder Shadow Map gleicht sich aus wenn viele VPLs sich

VPL / Depth map

aus, wenn viele VPLs sich überlagern

Zur Laufzeit: VPL / Depth mapZur Laufzeit:– Deformiere die Punkte bei

dynamischer Geometrie

T. Grosch - 50 -

Step 2: Punkt-basierte Shadow MapsFrame t Frame t+1

Punkte werden gespeichert als– Dreiecks-Index und Texturkoordinaten

Kann “on the fly” deformiert werdenKann “on-the-fly” deformiert werden

T. Grosch - 51 -

Step 2: Punkt-basierte Shadow Maps

Paraboloid Shadow Mapsp– Nur ein Render-Pass (besser

als 5 bei Hemi-Cube)Paraboloid Mapping ist eine nicht-lineare Projektion– Gerade Linien werden zuGerade Linien werden zu

Kurve wird nicht von der GPU unterstützt P bl ti h b i D i k– Problematisch bei Dreiecken, speziell im Nahbereich

– Wir zeichnen nur Punkte korrekte Abbildung

T. Grosch - 52 -

Step 1 VPL generationStep 2 Point based Shadow MapsStep 2 Point based Shadow MapsStep 3 Pull pushStep 4 Shading

T. Grosch - 53 -

Pull-PushPull PushDie Punkt-basierten Shadow Maps enthalten viele Löcher

– Dadurch entstehen viele Lücken im Schatten

Idee: Löcher im Bildraum füllen aus den Tiefenwerten der Nachbarpixelden Tiefenwerten der Nachbarpixel

– Wird bei Point-Rendering eingesetzt und in der Bildverarbeitung (kleine Fehler im Bild entfernen)

Bildpyramide– Löcher verschiedener Größe

Pull Schritt– Berechne den Mittelwert der

definierten Pixel und gehe eine Ebene nach oben (niedrigere Auflösung)

Push Schritt– Fülle die Lücken und gehe zu

nächst-höherer Auflösungsstufe

T. Grosch - 54 -

Step 3: Pull-Push

Beispiel Shadow Maps und rück-projizierte Punktep p p j3D

2D2

Without pull‐pushClassic With pull‐pushWithout pull pushClassic With pull push

T. Grosch - 55 -

Step 3: Pull-Push

Beispiel SchattenBeispiel Schatten

With pull-pushWithout pull-pushClassic

T. Grosch - 56 -

Step 3: Pull-Push

Alle Shadow Maps in einer grossen TexturAlle Shadow Maps in einer grossen Textur

Mit ll hOh ll h Mit pull‐pushOhne pull‐push

T. Grosch - 57 -

Step 1 VPL generationStep 2 Point based Shadow MapsStep 2 Point based Shadow MapsStep 3 Pull pushStep 4 Shading

T. Grosch - 58 -

Step 4: Shading

Direktes Licht wird mit St d d B l ht

Nur direkt Nur indirekt

Standard Beleuchtung berechnet– z.B. Spotlicht mit Hi-z.B. Spotlicht mit Hi

Res Shadow MapBild mit indirektem Licht wird aufaddiert (Licht ist additiv)

Direkt + Indirekt

T. Grosch - 59 -

Step 4: Shading

Beim indirekten Licht wird immer nur eine Teilmenge der VPLs ausgewählt [Segovia et al 2006]ausgewählt [Segovia et al. 2006]

Jedes Pixel wählt eine andere Teilmenge (Interleaved Sampling)– z.B. 4 x 4 Pixel Blöcke, jedes Pixel wählt N / 16 VPLse öc e, jedes e ä / 6 s

Pixel 1 nimmt VPL 0, 16, 32, …Pixel 2 nimmt VPL 1, 17, 33, ……

uffer

G‐B

T. Grosch - 60 -

Step 4: Shading

Das entstehende “Dithering” Muster kann durch einen Mitt l t Filt (4 4) i Bild tf t dMittelwert Filter (4 x 4) im Bildraum entfernt werdenDamit Objektkanten nicht verwischt werden, wird ein Bilateralfilter eingesetztBilateralfilter eingesetzt– D.h. Position und Normale des Pixels werden mit Position und Normale

des Zentrumspixels vergleichen– Nur bei ähnlicher Position und Orientierung wird das Pixel mit in den

Filter aufgenommen– Meist wird dieser Filter auch separiert (obwohl nicht identisch zu 2D p (

Bilateral Filter)

blur

ware

Simple b

Edge‐aw

T. Grosch - 61 -

Results: Performance• Breakdown

• 7 ms VPL generation• 7 ms VPL generation

• 44 ms ISM

8 P ll h• 8 ms Pull‐push

• 15 ms Rendering

4 G B ff

“Christo’s Sponza”70k f d i

• 4 ms  G‐Buffer

• 11 ms Direct light

T l– 70k faces, dynamic– 1024 VPLs

• Total

• 89 ms frame time

/– 256x256 depth maps– 8k points each

• 11 frames / s

T. Grosch - 62 -

Results: Quality (Path Tracing, hours)

T. Grosch - 63 -

Results: Quality (ISM, 11 fps)

T. Grosch - 64 -

Results

‘Cornell box 

Christo‘s Sponzahorse

Multiple Complex, localMultiple bounces

Complex, localarea lights

NaturalNatural illumination

Caustics

Timings: Nvidia GeForce 8800 GTXT. Grosch - 65 -

ISM VideoISM Video

T. Grosch - 66 -

Übung 5Übung 5Implementierung Instant Radiosity– Vorhanden:

Verteilung der VPLs mit bekanntem Path Tracer auf CPUDirektes Licht mit Shadow MapDirektes Licht mit Shadow MapDarstellung mit einfachem Tone Mapper

– Aufgabe: Beleuchtung durch VPLs auf GPUVertex Program für Hemisphärische ProjektionSh d M Atl iShadow Map Atlas generierenSchatten pro VPL berechnen

– Aufwändige Übung, daher 1 Monat Zeit !Aufwändige Übung, daher 1 Monat Zeit !– Aktuelle Grafikkarte benötigt (NVIDIA GF8 aufwärts)– Voraussichtlich ab nächstem Jahr neue Rechner in Raum G29-426

Bonuspunkte für die erste Umsetzung auf einer ATI Karte– Bonuspunkte für die erste Umsetzung auf einer ATI Karte

T. Grosch - 67 -

ZusammenfassungZusammenfassungInstant Radiosity– Simulation von indirektem Licht durch virtuelle Punktlichtquellen (VPLs)– Verteilung der VPLs meist auf CPU– Beleuchtung durch VPLs auf GPU langsamster Teil ist der Schatten proBeleuchtung durch VPLs auf GPU, langsamster Teil ist der Schatten pro

VPL– Diffuse Szenen

K i t k kt Lö b P bl b i VPL i d– Konvergiert gegen korrekte Lösung, aber Probleme bei VPLs in der Nähe von Kanten

– Mit Imperfect Shadow Maps wird die Generierung der Shadow Maps ca. 10x schneller

– Fehler in Shadow Maps können im Bildraum reduziert werden und sind kaum wahrnehmbar

Frohe Weihnachten und Guten Rutsch!– Nächste Vorlesung am 10.1.2011

T. Grosch - 68 -