v 14 instantradiosity [kompatibilitätsmodus] · *genauer gesagt kommt die methode des instant...
Post on 10-Aug-2019
212 Views
Preview:
TRANSCRIPT
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 -
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 -
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 -
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
‘Cornell box
Christo‘s Sponzahorse
Multiple Complex, localMultiple bounces
Complex, localarea lights
NaturalNatural illumination
Caustics
Timings: Nvidia GeForce 8800 GTXT. Grosch - 65 -
Ü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 -
top related