![Page 1: Computer)GraphikI - eecs.tu-berlin.de fileMarc%Alexa,%TU%Berlin% CG 17 Rekursives)Raytracing) Algorithmus) fürjedesPixeldesBildschirms{1.%Erzeuge%primären%Strahl%vom%Augpunktdurch%das%Pixel%](https://reader034.vdokument.com/reader034/viewer/2022051603/5cb9998e88c993af7a8c16d8/html5/thumbnails/1.jpg)
Marc Alexa, TU Berlin
CG �
1
Computer Graphik I
Globale Beleuchtung – Ray Tracing
![Page 2: Computer)GraphikI - eecs.tu-berlin.de fileMarc%Alexa,%TU%Berlin% CG 17 Rekursives)Raytracing) Algorithmus) fürjedesPixeldesBildschirms{1.%Erzeuge%primären%Strahl%vom%Augpunktdurch%das%Pixel%](https://reader034.vdokument.com/reader034/viewer/2022051603/5cb9998e88c993af7a8c16d8/html5/thumbnails/2.jpg)
Marc Alexa, TU Berlin
CG �
2
Raytracing
§ Albrecht Dürer „der zeichner des liegenden weibes“, 1538 Darstellung des Velo von AlberD (1404 –1472)
![Page 3: Computer)GraphikI - eecs.tu-berlin.de fileMarc%Alexa,%TU%Berlin% CG 17 Rekursives)Raytracing) Algorithmus) fürjedesPixeldesBildschirms{1.%Erzeuge%primären%Strahl%vom%Augpunktdurch%das%Pixel%](https://reader034.vdokument.com/reader034/viewer/2022051603/5cb9998e88c993af7a8c16d8/html5/thumbnails/3.jpg)
Marc Alexa, TU Berlin
CG �
3
Rekursives Raytracing
§ WhiMed 1979: Modell zur IntegraDon • ReflekDon • Beugung • Verdeckungsrechnung • SchaMen
§ Raytracing simuliert den Prozess der Lichtausbreitung und arbeitet dabei nach den Gesetzen für ideale Spiegelung und Brechung.
![Page 4: Computer)GraphikI - eecs.tu-berlin.de fileMarc%Alexa,%TU%Berlin% CG 17 Rekursives)Raytracing) Algorithmus) fürjedesPixeldesBildschirms{1.%Erzeuge%primären%Strahl%vom%Augpunktdurch%das%Pixel%](https://reader034.vdokument.com/reader034/viewer/2022051603/5cb9998e88c993af7a8c16d8/html5/thumbnails/4.jpg)
Marc Alexa, TU Berlin
CG �
4
Rekursives Raytracing Annahmen
§ Lichtquellen • Punktlichtquellen
§ Materialien • Diffuse mit spekulärem Anteil (Phong Modell)
§ Lichtausbreitung • verdeckende Objekte (SchaMen aber keine HalbschaMen) • Keine Lichtabschwächung • nur spekulärer Lichtaustausch zwischen Flächen (Strahlen werden nur in ReflekDonsrichtung verfolgt)
![Page 5: Computer)GraphikI - eecs.tu-berlin.de fileMarc%Alexa,%TU%Berlin% CG 17 Rekursives)Raytracing) Algorithmus) fürjedesPixeldesBildschirms{1.%Erzeuge%primären%Strahl%vom%Augpunktdurch%das%Pixel%](https://reader034.vdokument.com/reader034/viewer/2022051603/5cb9998e88c993af7a8c16d8/html5/thumbnails/5.jpg)
Marc Alexa, TU Berlin
CG �
5
Rekursives Raytracing Whi>ed 1979
![Page 6: Computer)GraphikI - eecs.tu-berlin.de fileMarc%Alexa,%TU%Berlin% CG 17 Rekursives)Raytracing) Algorithmus) fürjedesPixeldesBildschirms{1.%Erzeuge%primären%Strahl%vom%Augpunktdurch%das%Pixel%](https://reader034.vdokument.com/reader034/viewer/2022051603/5cb9998e88c993af7a8c16d8/html5/thumbnails/6.jpg)
Marc Alexa, TU Berlin
CG �
6
Rekursives Raytracing Beispiele
§ Raytracing ist vor allem für Szenen mit hohem spiegelnden und transparenten Flächenanteil gut geeignet.
![Page 7: Computer)GraphikI - eecs.tu-berlin.de fileMarc%Alexa,%TU%Berlin% CG 17 Rekursives)Raytracing) Algorithmus) fürjedesPixeldesBildschirms{1.%Erzeuge%primären%Strahl%vom%Augpunktdurch%das%Pixel%](https://reader034.vdokument.com/reader034/viewer/2022051603/5cb9998e88c993af7a8c16d8/html5/thumbnails/7.jpg)
Marc Alexa, TU Berlin
CG �
7
Rekursives Raytracing
§ Die Grundidee besteht darin, Lichtstrahlen auf ihrem Weg von der Quelle bis zum Auge zu verfolgen.
§ Zur Vereinfachung werden beim konvenDonellen Raytracing nur ideal reflekDerte und ideal gebrochene Strahlen weiterverfolgt.
![Page 8: Computer)GraphikI - eecs.tu-berlin.de fileMarc%Alexa,%TU%Berlin% CG 17 Rekursives)Raytracing) Algorithmus) fürjedesPixeldesBildschirms{1.%Erzeuge%primären%Strahl%vom%Augpunktdurch%das%Pixel%](https://reader034.vdokument.com/reader034/viewer/2022051603/5cb9998e88c993af7a8c16d8/html5/thumbnails/8.jpg)
Marc Alexa, TU Berlin
CG �
8
Rekursives Raytracing
§ Nur wenige Strahlen erreichen das Auge
§ Das Verfahren wird umgekehrt • Reziprozität der Reflexion
§ Man sendet durch jedes Pixel des Bildschirms einen vom Augpunkt ausgehenden Strahl in die Szene
![Page 9: Computer)GraphikI - eecs.tu-berlin.de fileMarc%Alexa,%TU%Berlin% CG 17 Rekursives)Raytracing) Algorithmus) fürjedesPixeldesBildschirms{1.%Erzeuge%primären%Strahl%vom%Augpunktdurch%das%Pixel%](https://reader034.vdokument.com/reader034/viewer/2022051603/5cb9998e88c993af7a8c16d8/html5/thumbnails/9.jpg)
Marc Alexa, TU Berlin
CG �
9
Rekursives Raytracing
§ SyntheDsche Kamera ist definiert durch einen Augpunkt und eine Bildebene in Weltkoordinaten
§ Bildebene ist in Pixel unterteilt, entsprechend der Auflösung des resulDerenden Bildes
![Page 10: Computer)GraphikI - eecs.tu-berlin.de fileMarc%Alexa,%TU%Berlin% CG 17 Rekursives)Raytracing) Algorithmus) fürjedesPixeldesBildschirms{1.%Erzeuge%primären%Strahl%vom%Augpunktdurch%das%Pixel%](https://reader034.vdokument.com/reader034/viewer/2022051603/5cb9998e88c993af7a8c16d8/html5/thumbnails/10.jpg)
Marc Alexa, TU Berlin
CG �
10
Rekursives Raytracing
§ Vom Augpunkt aus werden Strahlen durch die Pixel in die Szene geschickt.
![Page 11: Computer)GraphikI - eecs.tu-berlin.de fileMarc%Alexa,%TU%Berlin% CG 17 Rekursives)Raytracing) Algorithmus) fürjedesPixeldesBildschirms{1.%Erzeuge%primären%Strahl%vom%Augpunktdurch%das%Pixel%](https://reader034.vdokument.com/reader034/viewer/2022051603/5cb9998e88c993af7a8c16d8/html5/thumbnails/11.jpg)
Marc Alexa, TU Berlin
CG �
11
Rekursives Raytracing
§ Falls der Strahl mehr als ein Objekt schneidet, erscheint das nächste Objekt im Bild.
§ Sonst wird Hintergrundfarbe gezeichnet.
![Page 12: Computer)GraphikI - eecs.tu-berlin.de fileMarc%Alexa,%TU%Berlin% CG 17 Rekursives)Raytracing) Algorithmus) fürjedesPixeldesBildschirms{1.%Erzeuge%primären%Strahl%vom%Augpunktdurch%das%Pixel%](https://reader034.vdokument.com/reader034/viewer/2022051603/5cb9998e88c993af7a8c16d8/html5/thumbnails/12.jpg)
Marc Alexa, TU Berlin
CG �
12
Rekursives Raytracing
§ Falls ein Objekt vom Strahl geschniMen wird, so werden weitere Strahlen vom SchniMpunkt aus zu allen Lichtquellen gesendet.
![Page 13: Computer)GraphikI - eecs.tu-berlin.de fileMarc%Alexa,%TU%Berlin% CG 17 Rekursives)Raytracing) Algorithmus) fürjedesPixeldesBildschirms{1.%Erzeuge%primären%Strahl%vom%Augpunktdurch%das%Pixel%](https://reader034.vdokument.com/reader034/viewer/2022051603/5cb9998e88c993af7a8c16d8/html5/thumbnails/13.jpg)
Marc Alexa, TU Berlin
CG �
13
Rekursives Raytracing
§ Treffen diese „SchaMenstrahlen“ auf ein Objekt, so liegt der betrachtete Flächenpunkt im SchaMen.
![Page 14: Computer)GraphikI - eecs.tu-berlin.de fileMarc%Alexa,%TU%Berlin% CG 17 Rekursives)Raytracing) Algorithmus) fürjedesPixeldesBildschirms{1.%Erzeuge%primären%Strahl%vom%Augpunktdurch%das%Pixel%](https://reader034.vdokument.com/reader034/viewer/2022051603/5cb9998e88c993af7a8c16d8/html5/thumbnails/14.jpg)
Marc Alexa, TU Berlin
CG �
14
Rekursives Raytracing
§ Ist das Objekt spiegelnd, wird ein weiterer reflekDerter Strahl in die Szene gesendet.
![Page 15: Computer)GraphikI - eecs.tu-berlin.de fileMarc%Alexa,%TU%Berlin% CG 17 Rekursives)Raytracing) Algorithmus) fürjedesPixeldesBildschirms{1.%Erzeuge%primären%Strahl%vom%Augpunktdurch%das%Pixel%](https://reader034.vdokument.com/reader034/viewer/2022051603/5cb9998e88c993af7a8c16d8/html5/thumbnails/15.jpg)
Marc Alexa, TU Berlin
CG �
15
Rekursives Raytracing
§ Ist das Objekt transparent, so wird zusätzlich ein gebrochener Strahl weiterverfolgt.
![Page 16: Computer)GraphikI - eecs.tu-berlin.de fileMarc%Alexa,%TU%Berlin% CG 17 Rekursives)Raytracing) Algorithmus) fürjedesPixeldesBildschirms{1.%Erzeuge%primären%Strahl%vom%Augpunktdurch%das%Pixel%](https://reader034.vdokument.com/reader034/viewer/2022051603/5cb9998e88c993af7a8c16d8/html5/thumbnails/16.jpg)
Marc Alexa, TU Berlin
CG �
16
Rekursives Raytracing
§ Trij ein reflekDerter oder ein transmikerter Strahl auf ein weiteres Objekt, so werden vom neuen SchniMpunkt aus wieder SchaMenstrahlen zu den Lichtquellen und reflekDerte bzw. transmit-‐ Derte Strahlen ausgesendet.
§ Sichtstrahlen sind Parameter einer rekursiven FunkDon, die alle sichtbaren Flächen detekDert, sie schakert und die Resultate zurückliefert.
S
S
S
S
![Page 17: Computer)GraphikI - eecs.tu-berlin.de fileMarc%Alexa,%TU%Berlin% CG 17 Rekursives)Raytracing) Algorithmus) fürjedesPixeldesBildschirms{1.%Erzeuge%primären%Strahl%vom%Augpunktdurch%das%Pixel%](https://reader034.vdokument.com/reader034/viewer/2022051603/5cb9998e88c993af7a8c16d8/html5/thumbnails/17.jpg)
Marc Alexa, TU Berlin
CG �
17
Rekursives Raytracing Algorithmus
für jedes Pixel des Bildschirms {
1. Erzeuge primären Strahl vom Augpunkt durch das Pixel
2. Färbe es entsprechend der Leuchtdichte aus dieser Richtung
}
für jeden Strahl {
1. BesDmme nächstliegenden SchniMpunkt des Sehstrahls mit einem Objekt der Szene
2. Teste den SchaMenfühler auf SchniMpunkte: Falls keine Verdeckung der Lichtquelle, werte das Phong-‐Beleuchtungsmodell im SchniMpunkt aus
3. Erzeuge ideal reflekDerten Lichtstrahl und addiere die Leuchtdichte aus dieser Richtung (Rekursion)
4. Berechne ideal gebrochenen Lichtstrahl und addiere die Leuchtdichte aus dieser Richtung (Rekursion)
5. Gebe die summierte Leuchtdichte zurück
}
![Page 18: Computer)GraphikI - eecs.tu-berlin.de fileMarc%Alexa,%TU%Berlin% CG 17 Rekursives)Raytracing) Algorithmus) fürjedesPixeldesBildschirms{1.%Erzeuge%primären%Strahl%vom%Augpunktdurch%das%Pixel%](https://reader034.vdokument.com/reader034/viewer/2022051603/5cb9998e88c993af7a8c16d8/html5/thumbnails/18.jpg)
Marc Alexa, TU Berlin
CG �
18
Beleuchtungsmodell
§ Beleuchtung auf der Fläche ergibt sich • ambient + • diffus + • spekular (Highlights und ReflekDon) + • transmikert
§ Äquivalent zum Phong-‐Modell plus Beiträge des reflekDerten und transmikerten Strahls
![Page 19: Computer)GraphikI - eecs.tu-berlin.de fileMarc%Alexa,%TU%Berlin% CG 17 Rekursives)Raytracing) Algorithmus) fürjedesPixeldesBildschirms{1.%Erzeuge%primären%Strahl%vom%Augpunktdurch%das%Pixel%](https://reader034.vdokument.com/reader034/viewer/2022051603/5cb9998e88c993af7a8c16d8/html5/thumbnails/19.jpg)
Marc Alexa, TU Berlin
CG �
19
Beleuchtungsmodell
§ Beleuchtungsmodell • Lges = LPhong + rrLr + rtLt, • wobei
– Lr die Leuchtdichte auf dem reflekDerten Strahl, – Lt die Leuchtdichte auf dem transmikerten Strahl, – rr der Reflexionsgrad für die Idealreflexion, – rt der Reflexionsgrad für die Idealtransmission ist.
R=E-2(N*E)N
![Page 20: Computer)GraphikI - eecs.tu-berlin.de fileMarc%Alexa,%TU%Berlin% CG 17 Rekursives)Raytracing) Algorithmus) fürjedesPixeldesBildschirms{1.%Erzeuge%primären%Strahl%vom%Augpunktdurch%das%Pixel%](https://reader034.vdokument.com/reader034/viewer/2022051603/5cb9998e88c993af7a8c16d8/html5/thumbnails/20.jpg)
Marc Alexa, TU Berlin
CG �
20
Strahl-‐Objekt-‐Schni>
§ Strahl ist durch Ursprung und Richtungsvektor definiert • R(t) = Ro + t*Rd, wobei Ro Strahlursprung, Rd Richtung • Ursprung von Sichtstrahlen ist der Augpunkt • Ursprung von sekundären Strahlpunkt, sind SchniMpunkte von Elternstrahlen mit
Oberflächen
§ Jeder Strahl muss gegen alle Objekte auf SchniM getestet werden, um nächsten SchniMpunkt zu idenDfizieren.
![Page 21: Computer)GraphikI - eecs.tu-berlin.de fileMarc%Alexa,%TU%Berlin% CG 17 Rekursives)Raytracing) Algorithmus) fürjedesPixeldesBildschirms{1.%Erzeuge%primären%Strahl%vom%Augpunktdurch%das%Pixel%](https://reader034.vdokument.com/reader034/viewer/2022051603/5cb9998e88c993af7a8c16d8/html5/thumbnails/21.jpg)
Marc Alexa, TU Berlin
CG �
21
Strahl-‐Objekt-‐Schni> Kugel
§ Abstand zum Zentrum mit Radius vergleichen! • tca = (Sc -‐ Ro)Rd • thc2 = Sr2 -‐ D2
• D2 = LOC2 -‐ tca2 • => thc2 = Sr2 -‐ LOC2+ tca2 • Ist thc2 < 0, dann gibt
es keinen SchniMpunkt
§ SchniMpunkt aus dem Parameter besDmmen • t = tca +/-‐ sqrt(thc2)
§ SchniMpunkt liegt auf dem Strahl nur für t > 0!
![Page 22: Computer)GraphikI - eecs.tu-berlin.de fileMarc%Alexa,%TU%Berlin% CG 17 Rekursives)Raytracing) Algorithmus) fürjedesPixeldesBildschirms{1.%Erzeuge%primären%Strahl%vom%Augpunktdurch%das%Pixel%](https://reader034.vdokument.com/reader034/viewer/2022051603/5cb9998e88c993af7a8c16d8/html5/thumbnails/22.jpg)
Marc Alexa, TU Berlin
CG �
22
Strahl-‐Objekt-‐Schni> Dreieck
§ Dreieck V1, V2, V3 § SchniM mit der durch das Dreieck definierten Ebene
• Normale des Dreiecks N = (V3-‐V1)x(V2-‐V1) • Ebene: alle P für die gilt (P-‐V1)N = 0 • SchniM: für t mit (Ro + ti*Rd -‐ V1)N = 0
– t = (Ro -‐ V1)N / RdN
• SchniMpunkt: S = Ro + ti*Rd § Liegt der SchniMpunkt im Dreieck?
• Gleiche OrienDerung der Dreiecke (S,V1,V2), (S,V2,V3), (S,V3,V1) • OrienDerung: z.B. Vorzeichen von (V1-‐S)x(V2-‐S), usw.
![Page 23: Computer)GraphikI - eecs.tu-berlin.de fileMarc%Alexa,%TU%Berlin% CG 17 Rekursives)Raytracing) Algorithmus) fürjedesPixeldesBildschirms{1.%Erzeuge%primären%Strahl%vom%Augpunktdurch%das%Pixel%](https://reader034.vdokument.com/reader034/viewer/2022051603/5cb9998e88c993af7a8c16d8/html5/thumbnails/23.jpg)
Marc Alexa, TU Berlin
CG �
23
Strahl-‐Objekt-‐Schni> Dreieck -‐ besser
§ SchniMpunkt gleich in baryzentrischen Koordinaten besDmmen • Dreieck: wV1+uV2+vV3 mit u+v+w=1, also (1-‐u-‐v)V1+uV2+vV3 • SchniM: Ro + t*Rd = (1-‐u-‐v)V1+uV2+vV3 • LGS: [-‐Rd (V2-‐V1) (V3-‐V1)] (t,u,v)T = (Ro-‐V1) • Lösung: det = (Rdx(V3-‐V1))(V2-‐V1)
– t = det-‐1 ((Ro-‐V1)x(V2-‐V1))(V3-‐V1) – u = det-‐1 ((Rdx(V3-‐V1))(Ro-‐V1) – v = det-‐1 ((Ro-‐V1)x(V2-‐V1)) Rd
§ Liegt der SchniMpunkt im Dreieck? • 0<u<1, 0<v<1, u+v < 1 (t > 0)
![Page 24: Computer)GraphikI - eecs.tu-berlin.de fileMarc%Alexa,%TU%Berlin% CG 17 Rekursives)Raytracing) Algorithmus) fürjedesPixeldesBildschirms{1.%Erzeuge%primären%Strahl%vom%Augpunktdurch%das%Pixel%](https://reader034.vdokument.com/reader034/viewer/2022051603/5cb9998e88c993af7a8c16d8/html5/thumbnails/24.jpg)
Marc Alexa, TU Berlin
CG �
24
Strahl-‐Objekt-‐Schni> algebraische Flächen
§ Quadrik • Ax2+By2+Cz2+2Dxy+2Exz+2Fyz+2Gx+2Hy+2Iz+J=0 • einsetzen des Strahls liefert quadraDsche Gleichung in t
§ algebraische Fläche vom Grad n > 2 • einsetzen liefert Polynom vom Grad n • Für n < 5 algebraische Lösung (eventuell verbessern durch einen NewtonschriM)
• Für n > 4 NullstellenbesDmmung z.B. durch Unterteilung mit Algorithmus von de Casteljau.
![Page 25: Computer)GraphikI - eecs.tu-berlin.de fileMarc%Alexa,%TU%Berlin% CG 17 Rekursives)Raytracing) Algorithmus) fürjedesPixeldesBildschirms{1.%Erzeuge%primären%Strahl%vom%Augpunktdurch%das%Pixel%](https://reader034.vdokument.com/reader034/viewer/2022051603/5cb9998e88c993af7a8c16d8/html5/thumbnails/25.jpg)
Marc Alexa, TU Berlin
CG �
25
Strahl-‐Objekt-‐Schni> Strahl -‐ implizite Fläche
§ Einsetzen liefert reelle FunkDon in t • NullstellenbesDmmung z.B. mit Newtonverfahren
§ Ray Marching • Feste SchriMlänge, SP bei Vorzeichenwechsel
§ Sphere Tracing • Sei d(x,A) eine Schranke auf den
vorzeichenbeha}eten Abstand d(x,A) ≤ min ||x – y|| für alle y in A
• d(x,A) ist der Radius einer Kugel, die garanDert die implizite Fläche A nicht schneidet
• Marschiere entlang des Strahls x = r0 x += d(x,A) rd
• SchniMpunkt wenn die SchriMe konvergieren
![Page 26: Computer)GraphikI - eecs.tu-berlin.de fileMarc%Alexa,%TU%Berlin% CG 17 Rekursives)Raytracing) Algorithmus) fürjedesPixeldesBildschirms{1.%Erzeuge%primären%Strahl%vom%Augpunktdurch%das%Pixel%](https://reader034.vdokument.com/reader034/viewer/2022051603/5cb9998e88c993af7a8c16d8/html5/thumbnails/26.jpg)
Marc Alexa, TU Berlin
CG �
26
Strahl-‐Objekt-‐Schni>
![Page 27: Computer)GraphikI - eecs.tu-berlin.de fileMarc%Alexa,%TU%Berlin% CG 17 Rekursives)Raytracing) Algorithmus) fürjedesPixeldesBildschirms{1.%Erzeuge%primären%Strahl%vom%Augpunktdurch%das%Pixel%](https://reader034.vdokument.com/reader034/viewer/2022051603/5cb9998e88c993af7a8c16d8/html5/thumbnails/27.jpg)
Marc Alexa, TU Berlin
CG �
27
Rekursives Ray Tracing ConstrucMve Solid Geometry
![Page 28: Computer)GraphikI - eecs.tu-berlin.de fileMarc%Alexa,%TU%Berlin% CG 17 Rekursives)Raytracing) Algorithmus) fürjedesPixeldesBildschirms{1.%Erzeuge%primären%Strahl%vom%Augpunktdurch%das%Pixel%](https://reader034.vdokument.com/reader034/viewer/2022051603/5cb9998e88c993af7a8c16d8/html5/thumbnails/28.jpg)
Marc Alexa, TU Berlin
CG �
28
Ray Tracing ist so langsam!
§ SchniMpunktsberechnungen sind aufwändig! • Die Anzahl der SchniMpunktberechnungen pro Strahl ist O(n), wobei n die Anzahl
von Objekten in der Szene ist. • Die Anzahl der benöDgten Strahlen m hängt von der Bildschirmauflösung und der
Anzahl von Lichtquellen ab und wächst (in stark reflekDerenden und transmikerenden) Szenen exponenDell mit der Anzahl r der Rekursionsstufen.
• Um Aliaseffekte zu unterdrücken, werden häufig mehrere Strahlen pro Pixel gesendet.
• Jede Lichtquelle induziert SchaMenstrahlen. • Damit ist die Anzahl von SchniMpunktsberechnungen O(mn).
![Page 29: Computer)GraphikI - eecs.tu-berlin.de fileMarc%Alexa,%TU%Berlin% CG 17 Rekursives)Raytracing) Algorithmus) fürjedesPixeldesBildschirms{1.%Erzeuge%primären%Strahl%vom%Augpunktdurch%das%Pixel%](https://reader034.vdokument.com/reader034/viewer/2022051603/5cb9998e88c993af7a8c16d8/html5/thumbnails/29.jpg)
Marc Alexa, TU Berlin
CG �
29
Ray Tracing beschleunigen
§ Weniger Strahlen! • AdapDve RekursionsDefenkontrolle • AdapDves AnDaliasing
§ Schnellere SchniMpunktsberechnungen Strahl -‐ Szene! • Schneller SchniMpunktsberechnungen Strahl -‐ Objekt
– Geeignete Bounding Volumes für Objekte (NichtschniM schneller detekDeren) • Weniger SchniMpunktsberechnungen Strahl-‐Objekt
– Bounding Volume Hierarchien – Raumunterteilungen (Grids, BSP-‐Trees, Octrees)
• Richtungsabhängige Verfahren – Light-‐Buffer
![Page 30: Computer)GraphikI - eecs.tu-berlin.de fileMarc%Alexa,%TU%Berlin% CG 17 Rekursives)Raytracing) Algorithmus) fürjedesPixeldesBildschirms{1.%Erzeuge%primären%Strahl%vom%Augpunktdurch%das%Pixel%](https://reader034.vdokument.com/reader034/viewer/2022051603/5cb9998e88c993af7a8c16d8/html5/thumbnails/30.jpg)
Marc Alexa, TU Berlin
CG �
30
Weniger Strahlen AdapMve RekursionsMefenkontrolle
§ ReflekDerte und transmikerte Strahlen tragen nur einen besDmmten Bruchteil zur Beleuchtung eines Punktes bei.
§ Je Defer die Rekursion, umso kleiner ist der Beitrag des Strahls zur Beleuchtungsrechnung.
§ Nach einer besDmmten RekursionsDefe fallen die Beiträge unter eine besDmmte Schwelle. In diesem Fall werden keine weiteren Strahlen mehr generiert.
![Page 31: Computer)GraphikI - eecs.tu-berlin.de fileMarc%Alexa,%TU%Berlin% CG 17 Rekursives)Raytracing) Algorithmus) fürjedesPixeldesBildschirms{1.%Erzeuge%primären%Strahl%vom%Augpunktdurch%das%Pixel%](https://reader034.vdokument.com/reader034/viewer/2022051603/5cb9998e88c993af7a8c16d8/html5/thumbnails/31.jpg)
Marc Alexa, TU Berlin
CG �
31
Kugel Achsenparallele Bounding Box (BB)
Orientierte BB
Schneller Strahl-‐Objekt Nicht-‐Schni> Hüllkörper
§ Hüllkörper müssen einfach sein, d.h. SchniMtest mit anderen PrimiDven (Sichtvolumen, Sehstrahl) müssen sich einfach berechnen lassen.
![Page 32: Computer)GraphikI - eecs.tu-berlin.de fileMarc%Alexa,%TU%Berlin% CG 17 Rekursives)Raytracing) Algorithmus) fürjedesPixeldesBildschirms{1.%Erzeuge%primären%Strahl%vom%Augpunktdurch%das%Pixel%](https://reader034.vdokument.com/reader034/viewer/2022051603/5cb9998e88c993af7a8c16d8/html5/thumbnails/32.jpg)
Marc Alexa, TU Berlin
CG �
32
Schneller Strahl-‐Objekt Nicht-‐Schni> Hüllkörperhierarchien
§ Algorithmus: Culling • Beginne mit der Wurzel des Baumes • Teste jeden Knoten auf SchniM mit dem Strahl • Falls SchniM, so wird die Traversierung rekursiv mit den Kindern fortgesetzt. • Falls kein SchniM, so wird die weitere Bearbeitung des Knotens eingestellt.
![Page 33: Computer)GraphikI - eecs.tu-berlin.de fileMarc%Alexa,%TU%Berlin% CG 17 Rekursives)Raytracing) Algorithmus) fürjedesPixeldesBildschirms{1.%Erzeuge%primären%Strahl%vom%Augpunktdurch%das%Pixel%](https://reader034.vdokument.com/reader034/viewer/2022051603/5cb9998e88c993af7a8c16d8/html5/thumbnails/33.jpg)
Marc Alexa, TU Berlin
CG �
33
Schneller Strahl-‐Objekt Nicht-‐Schni> Hierarchische Raumunterteilung
§ Reguläres GiMer kann schnell miMels Rasterisierung traversiert werden • Einmalige SchniMpunktberechnung mit dem Wurzelkubus • Rasterisierung: 3D Digital DifferenDal Analyzer (3DDA)
§ Octree kann auch effizient traversiert werden • Traversierung ähnlich dem 3DDA • Zusätzlich Fallunterscheidungen und Halbieren bzw. Verdoppeln
der SchriMweiten bei Änderung der HierarchieDefe
![Page 34: Computer)GraphikI - eecs.tu-berlin.de fileMarc%Alexa,%TU%Berlin% CG 17 Rekursives)Raytracing) Algorithmus) fürjedesPixeldesBildschirms{1.%Erzeuge%primären%Strahl%vom%Augpunktdurch%das%Pixel%](https://reader034.vdokument.com/reader034/viewer/2022051603/5cb9998e88c993af7a8c16d8/html5/thumbnails/34.jpg)
Marc Alexa, TU Berlin
CG �
34
Schneller Strahl-‐Objekt Nicht-‐Schni> Hierarchische Raumunterteilung
§ Kd-‐Baum (/ BSP-‐ Baum) Traversierung:
![Page 35: Computer)GraphikI - eecs.tu-berlin.de fileMarc%Alexa,%TU%Berlin% CG 17 Rekursives)Raytracing) Algorithmus) fürjedesPixeldesBildschirms{1.%Erzeuge%primären%Strahl%vom%Augpunktdurch%das%Pixel%](https://reader034.vdokument.com/reader034/viewer/2022051603/5cb9998e88c993af7a8c16d8/html5/thumbnails/35.jpg)
Marc Alexa, TU Berlin
CG �
35
Schneller Strahl-‐Objekt Nicht-‐Schni> Hierarchische Raumunterteilung
§ Kd-‐Baum (/ BSP-‐ Baum) Traversierung:
![Page 36: Computer)GraphikI - eecs.tu-berlin.de fileMarc%Alexa,%TU%Berlin% CG 17 Rekursives)Raytracing) Algorithmus) fürjedesPixeldesBildschirms{1.%Erzeuge%primären%Strahl%vom%Augpunktdurch%das%Pixel%](https://reader034.vdokument.com/reader034/viewer/2022051603/5cb9998e88c993af7a8c16d8/html5/thumbnails/36.jpg)
Marc Alexa, TU Berlin
CG �
36
Schneller Strahl-‐Objekt Nicht-‐Schni> Hierarchische Raumunterteilung
§ Kd-‐Baum Traversierung: Strahl wird an der AABB geschniMen.
![Page 37: Computer)GraphikI - eecs.tu-berlin.de fileMarc%Alexa,%TU%Berlin% CG 17 Rekursives)Raytracing) Algorithmus) fürjedesPixeldesBildschirms{1.%Erzeuge%primären%Strahl%vom%Augpunktdurch%das%Pixel%](https://reader034.vdokument.com/reader034/viewer/2022051603/5cb9998e88c993af7a8c16d8/html5/thumbnails/37.jpg)
Marc Alexa, TU Berlin
CG �
37
Schneller Strahl-‐Objekt Nicht-‐Schni> Hierarchische Raumunterteilung
§ Kd-‐Baum Traversierung: Strahl wird auf den vorderen Halbraum beschränkt und auf SchniM gegen die nächste SchniMebene getestet.
![Page 38: Computer)GraphikI - eecs.tu-berlin.de fileMarc%Alexa,%TU%Berlin% CG 17 Rekursives)Raytracing) Algorithmus) fürjedesPixeldesBildschirms{1.%Erzeuge%primären%Strahl%vom%Augpunktdurch%das%Pixel%](https://reader034.vdokument.com/reader034/viewer/2022051603/5cb9998e88c993af7a8c16d8/html5/thumbnails/38.jpg)
Marc Alexa, TU Berlin
CG �
38
Schneller Strahl-‐Objekt Nicht-‐Schni> Hierarchische Raumunterteilung
§ Kd-‐Baum Traversierung: Vorgang wird wiederholt.
![Page 39: Computer)GraphikI - eecs.tu-berlin.de fileMarc%Alexa,%TU%Berlin% CG 17 Rekursives)Raytracing) Algorithmus) fürjedesPixeldesBildschirms{1.%Erzeuge%primären%Strahl%vom%Augpunktdurch%das%Pixel%](https://reader034.vdokument.com/reader034/viewer/2022051603/5cb9998e88c993af7a8c16d8/html5/thumbnails/39.jpg)
Marc Alexa, TU Berlin
CG �
39
Schneller Strahl-‐Objekt Nicht-‐Schni> Hierarchische Raumunterteilung
§ Kd-‐Baum Traversierung: Bis zu den BläMern; hier wird gegen die Objekte geschniMen.
![Page 40: Computer)GraphikI - eecs.tu-berlin.de fileMarc%Alexa,%TU%Berlin% CG 17 Rekursives)Raytracing) Algorithmus) fürjedesPixeldesBildschirms{1.%Erzeuge%primären%Strahl%vom%Augpunktdurch%das%Pixel%](https://reader034.vdokument.com/reader034/viewer/2022051603/5cb9998e88c993af7a8c16d8/html5/thumbnails/40.jpg)
Marc Alexa, TU Berlin
CG �
40
Schneller Strahl-‐Objekt Nicht-‐Schni> Hierarchische Raumunterteilung
§ Kd-‐Baum Traversierung: Dann wird der Baum weiter traversiert und die abgewandten Halbräume bearbeitet.
![Page 41: Computer)GraphikI - eecs.tu-berlin.de fileMarc%Alexa,%TU%Berlin% CG 17 Rekursives)Raytracing) Algorithmus) fürjedesPixeldesBildschirms{1.%Erzeuge%primären%Strahl%vom%Augpunktdurch%das%Pixel%](https://reader034.vdokument.com/reader034/viewer/2022051603/5cb9998e88c993af7a8c16d8/html5/thumbnails/41.jpg)
Marc Alexa, TU Berlin
CG �
41
Schneller Strahl-‐Objekt Nicht-‐Schni> Hierarchische Raumunterteilung
§ Kd-‐Baum Traversierung: Und so weiter.
![Page 42: Computer)GraphikI - eecs.tu-berlin.de fileMarc%Alexa,%TU%Berlin% CG 17 Rekursives)Raytracing) Algorithmus) fürjedesPixeldesBildschirms{1.%Erzeuge%primären%Strahl%vom%Augpunktdurch%das%Pixel%](https://reader034.vdokument.com/reader034/viewer/2022051603/5cb9998e88c993af7a8c16d8/html5/thumbnails/42.jpg)
Marc Alexa, TU Berlin
CG �
42
Schneller Strahl-‐Objekt Nicht-‐Schni> Hierarchische Raumunterteilung
§ Kd-‐Baum Traversierung:
![Page 43: Computer)GraphikI - eecs.tu-berlin.de fileMarc%Alexa,%TU%Berlin% CG 17 Rekursives)Raytracing) Algorithmus) fürjedesPixeldesBildschirms{1.%Erzeuge%primären%Strahl%vom%Augpunktdurch%das%Pixel%](https://reader034.vdokument.com/reader034/viewer/2022051603/5cb9998e88c993af7a8c16d8/html5/thumbnails/43.jpg)
Marc Alexa, TU Berlin
CG �
43
Schneller Strahl-‐Objekt Nicht-‐Schni> Hierarchische Raumunterteilung
§ Kd-‐Baum Traversierung:
![Page 44: Computer)GraphikI - eecs.tu-berlin.de fileMarc%Alexa,%TU%Berlin% CG 17 Rekursives)Raytracing) Algorithmus) fürjedesPixeldesBildschirms{1.%Erzeuge%primären%Strahl%vom%Augpunktdurch%das%Pixel%](https://reader034.vdokument.com/reader034/viewer/2022051603/5cb9998e88c993af7a8c16d8/html5/thumbnails/44.jpg)
Marc Alexa, TU Berlin
CG �
44
Richtungsabhängige Verfahren Light Buffer
![Page 45: Computer)GraphikI - eecs.tu-berlin.de fileMarc%Alexa,%TU%Berlin% CG 17 Rekursives)Raytracing) Algorithmus) fürjedesPixeldesBildschirms{1.%Erzeuge%primären%Strahl%vom%Augpunktdurch%das%Pixel%](https://reader034.vdokument.com/reader034/viewer/2022051603/5cb9998e88c993af7a8c16d8/html5/thumbnails/45.jpg)
Marc Alexa, TU Berlin
CG �
45
DistribuMon Ray Tracing Cook et al. ´84
§ ApproximaDon konDnuierlicher Phänomene durch Vervielfachung von Strahlen (Supersampling) • StochasDsche Verteilung der Strahlrichtungen
(bzw. VerteilungsfunkDon) • Anschließendes MiMeln der Farbwerte
§ Phänomene • HalbschaMen (So} Shadows) • Glanz (Gloss / Blurred ReflecDon) • Transluzenz (Blurred transperancy) • Bewegungsunschärfe (MoDon Blur) • Tiefenschärfe (Depth of field)
§ Harte SchaMen, etc. können als Aliasing verstanden werden!
![Page 46: Computer)GraphikI - eecs.tu-berlin.de fileMarc%Alexa,%TU%Berlin% CG 17 Rekursives)Raytracing) Algorithmus) fürjedesPixeldesBildschirms{1.%Erzeuge%primären%Strahl%vom%Augpunktdurch%das%Pixel%](https://reader034.vdokument.com/reader034/viewer/2022051603/5cb9998e88c993af7a8c16d8/html5/thumbnails/46.jpg)
Marc Alexa, TU Berlin
CG �
46
50% Verdeckung
DistribuMon Ray Tracing So[ Shadows
§ SchaMenfühler werden zufällig auf der projizierten Fläche ausgewählt • Graduelle Verdeckung entspricht dem Verhältnis aus versperrten zu
ungehinderten Fühlern • In der Praxis wird eine günsDge Gleichverteilung der Strahlen durch
Vorberechnung erreicht • Um Mustereffekte zu vermeiden kann Rauschen hinzugefügt werden
![Page 47: Computer)GraphikI - eecs.tu-berlin.de fileMarc%Alexa,%TU%Berlin% CG 17 Rekursives)Raytracing) Algorithmus) fürjedesPixeldesBildschirms{1.%Erzeuge%primären%Strahl%vom%Augpunktdurch%das%Pixel%](https://reader034.vdokument.com/reader034/viewer/2022051603/5cb9998e88c993af7a8c16d8/html5/thumbnails/47.jpg)
Marc Alexa, TU Berlin
CG �
47
DistribuMon Ray Tracing So[ Shadows
![Page 48: Computer)GraphikI - eecs.tu-berlin.de fileMarc%Alexa,%TU%Berlin% CG 17 Rekursives)Raytracing) Algorithmus) fürjedesPixeldesBildschirms{1.%Erzeuge%primären%Strahl%vom%Augpunktdurch%das%Pixel%](https://reader034.vdokument.com/reader034/viewer/2022051603/5cb9998e88c993af7a8c16d8/html5/thumbnails/48.jpg)
Marc Alexa, TU Berlin
CG �
48
DistribuMon Ray Tracing Gloss
§ ReflekDerte Strahlen werden gemäß einer spekulären VerteilungsfunkDon gestreut (Im Extremfall ApproximaDon global diffuser Beleuchtung ?)
![Page 49: Computer)GraphikI - eecs.tu-berlin.de fileMarc%Alexa,%TU%Berlin% CG 17 Rekursives)Raytracing) Algorithmus) fürjedesPixeldesBildschirms{1.%Erzeuge%primären%Strahl%vom%Augpunktdurch%das%Pixel%](https://reader034.vdokument.com/reader034/viewer/2022051603/5cb9998e88c993af7a8c16d8/html5/thumbnails/49.jpg)
Marc Alexa, TU Berlin
CG �
49
DistribuMon Ray Tracing Transluzenz
![Page 50: Computer)GraphikI - eecs.tu-berlin.de fileMarc%Alexa,%TU%Berlin% CG 17 Rekursives)Raytracing) Algorithmus) fürjedesPixeldesBildschirms{1.%Erzeuge%primären%Strahl%vom%Augpunktdurch%das%Pixel%](https://reader034.vdokument.com/reader034/viewer/2022051603/5cb9998e88c993af7a8c16d8/html5/thumbnails/50.jpg)
Marc Alexa, TU Berlin
CG �
50
DistribuMon Ray Tracing MoMon Blur
§ Zeitliches Sampling: Strahlen werden „zeitlich“ gestreut • Die Kamera und die Objekte werden in die PosiDon eines zufällig gewählten
Momentes innerhalb eines Zei�ensters transformiert. • Strahlen werden verfolgt • Farbwerte werden gemiMelt • Entspricht der Verschlußzeit
beim Fotografieren • Zeitliches AnDaliasing
![Page 51: Computer)GraphikI - eecs.tu-berlin.de fileMarc%Alexa,%TU%Berlin% CG 17 Rekursives)Raytracing) Algorithmus) fürjedesPixeldesBildschirms{1.%Erzeuge%primären%Strahl%vom%Augpunktdurch%das%Pixel%](https://reader034.vdokument.com/reader034/viewer/2022051603/5cb9998e88c993af7a8c16d8/html5/thumbnails/51.jpg)
Marc Alexa, TU Berlin
CG �
51
DistribuMon Ray Tracing Depth of Field
§ Tiefenschärfe miMels virtueller Linse und Blende • SchniM von Strahl durch PixelmiMe und fokaler Ebene besDmmt den fokalen Punkt
eines Strahls bzw. Pixels (Linse) • Strahlursprung wird auf der
Bildebene gestreut (Blende) • Alle Strahlen dieses Pixels
verlaufen durch den Fokalen Punkt
![Page 52: Computer)GraphikI - eecs.tu-berlin.de fileMarc%Alexa,%TU%Berlin% CG 17 Rekursives)Raytracing) Algorithmus) fürjedesPixeldesBildschirms{1.%Erzeuge%primären%Strahl%vom%Augpunktdurch%das%Pixel%](https://reader034.vdokument.com/reader034/viewer/2022051603/5cb9998e88c993af7a8c16d8/html5/thumbnails/52.jpg)
Marc Alexa, TU Berlin
CG �
52
DistribuMon Ray Tracing Depth of Field
![Page 53: Computer)GraphikI - eecs.tu-berlin.de fileMarc%Alexa,%TU%Berlin% CG 17 Rekursives)Raytracing) Algorithmus) fürjedesPixeldesBildschirms{1.%Erzeuge%primären%Strahl%vom%Augpunktdurch%das%Pixel%](https://reader034.vdokument.com/reader034/viewer/2022051603/5cb9998e88c993af7a8c16d8/html5/thumbnails/53.jpg)
Marc Alexa, TU Berlin
CG �
53
Beispiele
![Page 54: Computer)GraphikI - eecs.tu-berlin.de fileMarc%Alexa,%TU%Berlin% CG 17 Rekursives)Raytracing) Algorithmus) fürjedesPixeldesBildschirms{1.%Erzeuge%primären%Strahl%vom%Augpunktdurch%das%Pixel%](https://reader034.vdokument.com/reader034/viewer/2022051603/5cb9998e88c993af7a8c16d8/html5/thumbnails/54.jpg)
Marc Alexa, TU Berlin
CG �
54
Beispiele
§ Norbert Kern -‐ trace 101 h 18 min § Machine -‐ 1,4 GHz Athlon C / 1 GB RAM
![Page 55: Computer)GraphikI - eecs.tu-berlin.de fileMarc%Alexa,%TU%Berlin% CG 17 Rekursives)Raytracing) Algorithmus) fürjedesPixeldesBildschirms{1.%Erzeuge%primären%Strahl%vom%Augpunktdurch%das%Pixel%](https://reader034.vdokument.com/reader034/viewer/2022051603/5cb9998e88c993af7a8c16d8/html5/thumbnails/55.jpg)
Marc Alexa, TU Berlin
CG �
55
Vorteile von Ray Tracing
§ Beliebig komplexe Szene und Objekte • Bedingung: Es können SchniMpunkte und dort dann Objektnormalen besDmmt
werden (Fraktale?).
§ Berechnung von Verdeckung, SchaMen, Reflexion, Transparenz, perspekDvischer TransformaDon, Clipping geschieht automaDsch
§ Objekte dürfen sich gegenseiDg durchdringen -‐ SchniMe zwischen Objekten brauchen nicht berechnet zu werden.
§ Das Beleuchtungsmodell wird nur in sichtbaren Objektpunkten ausgewertet.
![Page 56: Computer)GraphikI - eecs.tu-berlin.de fileMarc%Alexa,%TU%Berlin% CG 17 Rekursives)Raytracing) Algorithmus) fürjedesPixeldesBildschirms{1.%Erzeuge%primären%Strahl%vom%Augpunktdurch%das%Pixel%](https://reader034.vdokument.com/reader034/viewer/2022051603/5cb9998e88c993af7a8c16d8/html5/thumbnails/56.jpg)
Marc Alexa, TU Berlin
CG �
56
Nachteile
§ Abtastung führt zu Aliasing • Abhilfe: Teures Supersampling oder stochasDsches Abtasten
§ Rechenaufwand ist sehr groß § Scharfe SchaMenkanten -‐ HalbschaMen sind sehr teuer § Keine Ausnutzung von Kohärenz
• StaDsche Szene = konstante SchaMen, müssen aber trotzdem für jeden Blickpunkt neu gerechnet werden
• Diffuse Effekte sind auch unabhängig vom Blickpunkt
![Page 57: Computer)GraphikI - eecs.tu-berlin.de fileMarc%Alexa,%TU%Berlin% CG 17 Rekursives)Raytracing) Algorithmus) fürjedesPixeldesBildschirms{1.%Erzeuge%primären%Strahl%vom%Augpunktdurch%das%Pixel%](https://reader034.vdokument.com/reader034/viewer/2022051603/5cb9998e88c993af7a8c16d8/html5/thumbnails/57.jpg)
Marc Alexa, TU Berlin
CG �
57
Nachteile Diffuse Lichtausbreitung
§ Spekular-‐diffus-‐Übergang wird nicht berücksichDgt. Lösung z.B. durch Beam-‐Tracing oder Photon Maps
§ Globales diffuses Licht wird beim konvenDonellen Raytracing-‐Verfahren nicht berücksichDgt.
![Page 58: Computer)GraphikI - eecs.tu-berlin.de fileMarc%Alexa,%TU%Berlin% CG 17 Rekursives)Raytracing) Algorithmus) fürjedesPixeldesBildschirms{1.%Erzeuge%primären%Strahl%vom%Augpunktdurch%das%Pixel%](https://reader034.vdokument.com/reader034/viewer/2022051603/5cb9998e88c993af7a8c16d8/html5/thumbnails/58.jpg)
Marc Alexa, TU Berlin
CG �
58
Probleme mit diffuser Beleuchtung
A Daylight Experiment, John Ferren
![Page 59: Computer)GraphikI - eecs.tu-berlin.de fileMarc%Alexa,%TU%Berlin% CG 17 Rekursives)Raytracing) Algorithmus) fürjedesPixeldesBildschirms{1.%Erzeuge%primären%Strahl%vom%Augpunktdurch%das%Pixel%](https://reader034.vdokument.com/reader034/viewer/2022051603/5cb9998e88c993af7a8c16d8/html5/thumbnails/59.jpg)
Marc Alexa, TU Berlin
CG �
59
Probleme mit diffuser Beleuchtung