60
Helwig Hauser Teil 8: Ray Tracing Teil 8: Ray Tracing Beleuchtung, inkl. Schatten, Reflexionen

Helwig Hauser Teil 8: Ray Tracing Beleuchtung, inkl. Schatten, Reflexionen

Embed Size (px)

Citation preview

Page 1: Helwig Hauser Teil 8: Ray Tracing Beleuchtung, inkl. Schatten, Reflexionen

Helwig Hauser Teil 8: Ray Tracing

Teil 8: Ray Tracing

Beleuchtung, inkl. Schatten, Reflexionen

Page 2: Helwig Hauser Teil 8: Ray Tracing Beleuchtung, inkl. Schatten, Reflexionen

Helwig Hauser Teil 8: Ray Tracing

Ray Tracing – EinleitungForward Ray Tracing: Lichtwege verfolgen: wohin fällt Licht? vgl. shooting (Radiosity) Strahlen verfehlen Auge: aufwendig!

Backward Ray Tracing: „Blickstrahl“-Verfolgung: was sehe ich? vgl. gathering (Radiosity) Beleuchtung rekonstruieren

Page 3: Helwig Hauser Teil 8: Ray Tracing Beleuchtung, inkl. Schatten, Reflexionen

Helwig Hauser Teil 8: Ray Tracing

(Bwd.) Ray TracingIdee: für jedes Pixel: berechne Blickstrahl (Kameramodell) verfolge Blickstrahl in die Szene,

ermittle nähesten Schnittpunkt (Schnittpunktberechnung)

ermittle Beleuchtung (Phong, Schatten) ermittle indirekte Beleuchtung

(Reflexionen, Brechungen) kombinieren Farbeindruck = Pixel-Wert evtl. mehr . . .

Page 4: Helwig Hauser Teil 8: Ray Tracing Beleuchtung, inkl. Schatten, Reflexionen

Helwig Hauser Teil 8: Ray Tracing

Ray Tracing – BausteineKameramodell Blickstrahlermittlung

Sichtbarkeitsberechnung = Schnittberechnungen++ welches Objekt sehe ich (pro Pixel)

Schattierung bzw. Beleuchtung Schattenermittlung (Schattenfühler) lokales Beleuchtungsmodell (Phong)

Indirekte Einflüsse, Rekursion Reflexionen, Brechungen

Page 5: Helwig Hauser Teil 8: Ray Tracing Beleuchtung, inkl. Schatten, Reflexionen

Helwig Hauser Teil 8: Ray Tracing

Ray Tracing

Charakteristika anhand von Beispielen

Page 6: Helwig Hauser Teil 8: Ray Tracing Beleuchtung, inkl. Schatten, Reflexionen

Helwig Hauser Teil 8: Ray Tracing

RT: Reflexionen, BrechungenNormalerw. aber nicht: Kaustiken Prismen-

effekt

Page 7: Helwig Hauser Teil 8: Ray Tracing Beleuchtung, inkl. Schatten, Reflexionen

Helwig Hauser Teil 8: Ray Tracing

RT: Photo-RealismusNormalerw. aber nicht: Schmutz Out-door Tiefen-

unschärfe

Page 8: Helwig Hauser Teil 8: Ray Tracing Beleuchtung, inkl. Schatten, Reflexionen

Helwig Hauser Teil 8: Ray Tracing

RT: Licht und SchattenNormalerw. aber nicht: Halbschatten,

i.e., flächige bzw. räuml. Lichtquellen

Page 9: Helwig Hauser Teil 8: Ray Tracing Beleuchtung, inkl. Schatten, Reflexionen

Helwig Hauser Teil 8: Ray Tracing

RT: Komplexe ObjekteNormalerw. aber nicht: komplexe

Modelle realer Obj. (Tiere, etc.)

Page 10: Helwig Hauser Teil 8: Ray Tracing Beleuchtung, inkl. Schatten, Reflexionen

Helwig Hauser Teil 8: Ray Tracing

Ray Tracing – CharakteristikaPhoto-realistische ErgebnisbilderSichtbarkeitsalgorithmusLichtquellen (auch mehrere), SchattenReflexionen, BrechungenKomplexe Objekte (gekrümmt, fraktal)Sehr aufwendig

Page 11: Helwig Hauser Teil 8: Ray Tracing Beleuchtung, inkl. Schatten, Reflexionen

Helwig Hauser Teil 8: Ray Tracing

Ray Tracing – Strahlverfolgung

Primärstrahlen, Sekundärstrahlen

Page 12: Helwig Hauser Teil 8: Ray Tracing Beleuchtung, inkl. Schatten, Reflexionen

Helwig Hauser Teil 8: Ray Tracing

Ray Tracing – StrahlenPrimärstrahlenSekundärstrahlen: Reflexionen R, Brechungen T

RT-Graph

Page 13: Helwig Hauser Teil 8: Ray Tracing Beleuchtung, inkl. Schatten, Reflexionen

Helwig Hauser Teil 8: Ray Tracing

Abb ildungsebene

L ich tque lle

P ixe l

Page 14: Helwig Hauser Teil 8: Ray Tracing Beleuchtung, inkl. Schatten, Reflexionen

Helwig Hauser Teil 8: Ray Tracing

SphereSphere

CubeCube

EyeEye

CylinderCylinder

refractedreflected

*) RT Baum für gezeigte Folie

Page 15: Helwig Hauser Teil 8: Ray Tracing Beleuchtung, inkl. Schatten, Reflexionen

Helwig Hauser Teil 8: Ray Tracing

Ray Tracing – Algorithmus

Sehstrahl, Schnittberechnung,

Beleuchtung & Schatten, Rekursion

Page 16: Helwig Hauser Teil 8: Ray Tracing Beleuchtung, inkl. Schatten, Reflexionen

Helwig Hauser Teil 8: Ray Tracing

FOR every pixel p DO1. trace primary ray find closest intersection s2. FOR every light source l DO

trace shadow feeler l -> sIF no intersection THEN

illumination += local influence of l3. IF surface of s is reflective THEN

trace secondary rayillumination += influence of reflection

IF surface of s is transparent THENtrace secondary rayillumination += influence of refraction

Page 17: Helwig Hauser Teil 8: Ray Tracing Beleuchtung, inkl. Schatten, Reflexionen

Helwig Hauser Teil 8: Ray Tracing

Ray Tracing – Beispiel (1)

1. Sichtbarkeitsberechnung:

welcher Objektpunkt wird betrachtet?

Page 18: Helwig Hauser Teil 8: Ray Tracing Beleuchtung, inkl. Schatten, Reflexionen

Helwig Hauser Teil 8: Ray Tracing

Ray Tracing – Beispiel (2)

L1

2a: Lokale Beleuchtung (1. Licht): Phong!

Page 19: Helwig Hauser Teil 8: Ray Tracing Beleuchtung, inkl. Schatten, Reflexionen

Helwig Hauser Teil 8: Ray Tracing

Ray Tracing – Beispiel (3)

L2

L1

2b: Lokale Bel.(2. Licht): Schatten!

Page 20: Helwig Hauser Teil 8: Ray Tracing Beleuchtung, inkl. Schatten, Reflexionen

Helwig Hauser Teil 8: Ray Tracing

Ray Tracing – Beispiel (4)

3:Indir. Bel. (Spiegel.)

L2

L1

Page 21: Helwig Hauser Teil 8: Ray Tracing Beleuchtung, inkl. Schatten, Reflexionen

Helwig Hauser Teil 8: Ray Tracing

Ray Tracing – Beispiel (5)

3.1:Schattierung des2. Objekts

L2

L1

Page 22: Helwig Hauser Teil 8: Ray Tracing Beleuchtung, inkl. Schatten, Reflexionen

Helwig Hauser Teil 8: Ray Tracing

Ray Tracing – Beispiel (6)

L2

L1

0.:Bild: alles fürjedes Pixel

Page 23: Helwig Hauser Teil 8: Ray Tracing Beleuchtung, inkl. Schatten, Reflexionen

Helwig Hauser Teil 8: Ray Tracing

Ray Tracing – Beispiel (7)

PerspektivischeProjektion

Reflexionen

Schatten

LokaleBeleuchtung

L2

L1

Page 24: Helwig Hauser Teil 8: Ray Tracing Beleuchtung, inkl. Schatten, Reflexionen

Helwig Hauser Teil 8: Ray Tracing

Ray Tracing – Schnittberechnungen

Kugel,Polygon,

Box

Page 25: Helwig Hauser Teil 8: Ray Tracing Beleuchtung, inkl. Schatten, Reflexionen

Helwig Hauser Teil 8: Ray Tracing

Anforderungen an ObjekteSchnittberechnung mit Strahl Lösung in geschlossener Form Iterativer, numerischer Ansatz

Normalenberechnung im SchnittpunktBeispiele: Implizit definierte Objekte – f(x)=0 – wie

Kugel, Ebene, etc.: oft relativ einfach Sonst: oft Ausnutzen von Hilfsstrukturen:

bounding boxes, regular grid, BSP, etc.

Page 26: Helwig Hauser Teil 8: Ray Tracing Beleuchtung, inkl. Schatten, Reflexionen

Helwig Hauser Teil 8: Ray Tracing

Strahl-Kugel Schnitt (1)

Strahl (parametrisch): Augpunkt P0, Richtungsvektor R, i.e.

P(t) = P0 + t R (|R| = 1)

Kugel (implizit): Mittelpunkt M, Radius r

P0

R rM

Page 27: Helwig Hauser Teil 8: Ray Tracing Beleuchtung, inkl. Schatten, Reflexionen

Helwig Hauser Teil 8: Ray Tracing

Strahl-Kugel Schnitt (2)

1. Abstand2 (M-P0)2 m2 P0 außerhalb?2. P0 außerhalb + R zeigt weg von Kugel R(M-P0) h < 0 fertig (kein Schnitt)3. Def. D ( Strahlpunkt am nächsten zu M)4. Abstand2 (M-D)2 d2 Strahl schneidet?5. d2>r2 fertig (Strahl geht vorbei)6. Ber. t-Werte von Schnittpunkten ( t1, [ t2 ])7. Ber. Schnittpunkte S1, [ S2 ] 8. Ber. Kugelnormale N1, [ N2 ], fertig (Schnitt)

Page 28: Helwig Hauser Teil 8: Ray Tracing Beleuchtung, inkl. Schatten, Reflexionen

Helwig Hauser Teil 8: Ray Tracing

Strahl-Kugel Schnitt (3)

P0

R r

M

d

D S1

S2

m

s

hEnde bei 2.

Ende bei 5.

Page 29: Helwig Hauser Teil 8: Ray Tracing Beleuchtung, inkl. Schatten, Reflexionen

Helwig Hauser Teil 8: Ray Tracing

Bsp.: P0 = (1 –2 –1)T, R || (1 2 4)T, M = (3 0 5)T, r = 3

Strahl-Kugel Schnitt, Beispiel (1)

1. m2 = (M-P0)2 = (2 2 6)T(2 2 6)T = 4444 > r2 = 9 P0 außerhalb

2. R (M-P0) = (1 2 4)T/21 (2 2 6)T = 6.5466.546 > 0 R zeigt in Richtung Kugel!! R (M-P0) = h = mcos(MP0D) = |D-P| !!

4. d2 = m2 – h2 = 44 – 42.850 = 1.150

5. 1.150 < r2 = 9 Strahl schneidet wirklich

Page 30: Helwig Hauser Teil 8: Ray Tracing Beleuchtung, inkl. Schatten, Reflexionen

Helwig Hauser Teil 8: Ray Tracing

6. s2 = r2 – d2 = 9 – 1.150 = 7.850 s = 2.802t1 = h – s = 6.546 – 2.802 = 3.744, t2 =

7. S1 = P0 t1 R = (1.816 0.368 2.269)T,

S2 =

8. N1 = (S1M) / r = (0.395 0.123 0.910)T,

N2 =

Strahl-Kugel Schnitt, Beispiel (2)

Bsp.: P0 = (1 –2 –1)T, R || (1 2 4)T, M = (3 0 5)T, r = 3

Page 31: Helwig Hauser Teil 8: Ray Tracing Beleuchtung, inkl. Schatten, Reflexionen

Helwig Hauser Teil 8: Ray Tracing

Strahl-Polygon Schnitt (1)

Strahl: P = P0 + tR |R| = 1

Polygon-Ebene: Ax + By + Cz + D = 0 (A2+B2+C2)=1

Normalvektor auf Polygon: N = (A B C)

Vektorschreibweise: NP = –D

N (P0 + tR) = –D t = – (D + NP0)/NR

Page 32: Helwig Hauser Teil 8: Ray Tracing Beleuchtung, inkl. Schatten, Reflexionen

Helwig Hauser Teil 8: Ray Tracing

Strahl-Polygon Schnitt (2)

NR = 0 Strahl ist parallel zu Polygon

t<0 Schnittpunkt hinter Augpunkt

Schnittpunkt: t in Strahlgleichung einsetzeninside/outside-Test für Polygon (z.B.) mit even/odd-Regel

Page 33: Helwig Hauser Teil 8: Ray Tracing Beleuchtung, inkl. Schatten, Reflexionen

Helwig Hauser Teil 8: Ray Tracing

Strahl-Box Schnitt

in

in

in

t

t-Werte:

Durchschnitt: box

Für alle konvexen Vielflächer gilt:

Schnitte nur mit Ebenen, kein Polygon (inside/outside)Test notwendig!

Page 34: Helwig Hauser Teil 8: Ray Tracing Beleuchtung, inkl. Schatten, Reflexionen

Helwig Hauser Teil 8: Ray Tracing

Ray Tracing – Beleuchtung

Beleuchtung = lokale Beleuchtung+ Reflexionsanteil+ Brechungsanteil

Page 35: Helwig Hauser Teil 8: Ray Tracing Beleuchtung, inkl. Schatten, Reflexionen

Helwig Hauser Teil 8: Ray Tracing

BeleuchtungsmodellAm Schnittpunkt:

Lokal (Phong):

Rekursive Definition:I(P) = klokal Ilokal + krefl I(Pr) + ktrans I(Pt)

klocal + krefl + ktrans = 1

Page 36: Helwig Hauser Teil 8: Ray Tracing Beleuchtung, inkl. Schatten, Reflexionen

Helwig Hauser Teil 8: Ray Tracing

Beleuchtung: lokale Beleuchtung

Schattenfühler in Richtung L

Umgebungslicht

Diffuse Reflexion

Spiegelnde Reflextion, z.B.

aa Ik

)( LNkd sn

s NHk )(

Page 37: Helwig Hauser Teil 8: Ray Tracing Beleuchtung, inkl. Schatten, Reflexionen

Helwig Hauser Teil 8: Ray Tracing

Ray Tracing: Reflexion, BrechungReflexionsstrahl

Brechungsstrahl Brechungsgesetz

NNuuR )2(

ir

ir

sinsin

Page 38: Helwig Hauser Teil 8: Ray Tracing Beleuchtung, inkl. Schatten, Reflexionen

Helwig Hauser Teil 8: Ray Tracing

Beleuchtung: Reflexion

=

Hrefl

Irefl … Reflexionsanteilkrefl … Reflexionskoeffizient des MaterialsHrefl … Einfallender Teil in Reflexionsrichtung

Irefl = krefl Hrefl

Page 39: Helwig Hauser Teil 8: Ray Tracing Beleuchtung, inkl. Schatten, Reflexionen

Helwig Hauser Teil 8: Ray Tracing

Beleuchtung: Transparenz

Htrans

A

B sin:sin=nB:nA

Itrans … Transparenzanteilktrans … Transparenzkoeffizient des MaterialsHtrans … Einfallender Teil in Brechungsrichtung

Itrans = ktrans Htrans

Page 40: Helwig Hauser Teil 8: Ray Tracing Beleuchtung, inkl. Schatten, Reflexionen

Helwig Hauser Teil 8: Ray Tracing

Ray Tracing – Beispiele

3 Beispiele

Page 41: Helwig Hauser Teil 8: Ray Tracing Beleuchtung, inkl. Schatten, Reflexionen

Helwig Hauser Teil 8: Ray Tracing

Ray Tracing Beispiel 1

Szene:37 Kugeln720 Polyg.

Algorithmus:9 Strahlenper PixelTiefe 5

Page 42: Helwig Hauser Teil 8: Ray Tracing Beleuchtung, inkl. Schatten, Reflexionen

Helwig Hauser Teil 8: Ray Tracing

Ray Tracing Beispiel 2

Szene:3036 Primitive2 Lichtquellen

Algorithmus:1 Strahl per Pixel1.6 Mio. Strahlen

Page 43: Helwig Hauser Teil 8: Ray Tracing Beleuchtung, inkl. Schatten, Reflexionen

Helwig Hauser Teil 8: Ray Tracing

Ray Tracing Beispiel 3

Szene:1298 Polyg.4 Kugeln76 Zylider35 Quadriken5 Lichtquellen

Algorithmus:Light-Buffer

Page 44: Helwig Hauser Teil 8: Ray Tracing Beleuchtung, inkl. Schatten, Reflexionen

Helwig Hauser Teil 8: Ray Tracing

Ray Tracing Beispiel 3 – Detail

Page 45: Helwig Hauser Teil 8: Ray Tracing Beleuchtung, inkl. Schatten, Reflexionen

Helwig Hauser Teil 8: Ray Tracing

MängelKomplexität durch Menge an Strahlen(und dabei entstehende Schnitte)Restriktion der „Globalität“ auf Spiegelreflexion und Brechnung(keine globale diffuse Beleuchtung)Visuelle Mängel Anti-Aliasing Kein Halbschatten Tiefenschärfeneffekte

Page 46: Helwig Hauser Teil 8: Ray Tracing Beleuchtung, inkl. Schatten, Reflexionen

Helwig Hauser Teil 8: Ray Tracing

Distributed Ray Tracing

Anti-Aliasing, Halbschatten, diffuse Reflexion, etc.

Page 47: Helwig Hauser Teil 8: Ray Tracing Beleuchtung, inkl. Schatten, Reflexionen

Helwig Hauser Teil 8: Ray Tracing

Distributed Ray TracingBerücksichtigung folgender Effekte: Aliasing Unscharfe Spiegelung Milchglaseffekte Halbschatten Tiefenunschärfe Bewegungsunschärfe

Page 48: Helwig Hauser Teil 8: Ray Tracing Beleuchtung, inkl. Schatten, Reflexionen

Helwig Hauser Teil 8: Ray Tracing

Anti-AliasingStochastisches Sampling mit Gauss-Gewichtung

Page 49: Helwig Hauser Teil 8: Ray Tracing Beleuchtung, inkl. Schatten, Reflexionen

Helwig Hauser Teil 8: Ray Tracing

Unscharfe SpiegelungSimulation von gerichtet-diffusen Reflexionen durch Variation des Reflexionswinkels

Page 50: Helwig Hauser Teil 8: Ray Tracing Beleuchtung, inkl. Schatten, Reflexionen

Helwig Hauser Teil 8: Ray Tracing

Halbschatten

source

light shadow

penumbra

Page 51: Helwig Hauser Teil 8: Ray Tracing Beleuchtung, inkl. Schatten, Reflexionen

Helwig Hauser Teil 8: Ray Tracing

TiefenunschärfeAbhängigkeit von der Blende berücksichtigen (Durchmesser)

Scenepixel lens focus point

Page 52: Helwig Hauser Teil 8: Ray Tracing Beleuchtung, inkl. Schatten, Reflexionen

Helwig Hauser Teil 8: Ray Tracing

Algorithmus (Distributed Ray Tracing)

Große Anzahl an Strahlen - aber:Monte-Carlo Integration möglich Nur einen Strahl weiterverfolgen Integration eines Strahlenbündels

Benötigte Strahlen (pro Pixel): Minimum: 5-10 Gute Qualität: 10-20 (für einen Effekt) Gute Gesamtqualität: 20-60

Page 53: Helwig Hauser Teil 8: Ray Tracing Beleuchtung, inkl. Schatten, Reflexionen

Helwig Hauser Teil 8: Ray Tracing

Distributed Ray Tracing – Bsp.

Halbschatten, Blur, Spektren

Page 54: Helwig Hauser Teil 8: Ray Tracing Beleuchtung, inkl. Schatten, Reflexionen

Helwig Hauser Teil 8: Ray Tracing

Distributed Ray Tracing – Bsp.

Blur & Tiefenunschärfe

Page 55: Helwig Hauser Teil 8: Ray Tracing Beleuchtung, inkl. Schatten, Reflexionen

Helwig Hauser Teil 8: Ray Tracing

Distributed Ray Tracing – Bsp.

Page 56: Helwig Hauser Teil 8: Ray Tracing Beleuchtung, inkl. Schatten, Reflexionen

Helwig Hauser Teil 8: Ray Tracing

www.povray.org – Beispiele

Page 57: Helwig Hauser Teil 8: Ray Tracing Beleuchtung, inkl. Schatten, Reflexionen

Helwig Hauser Teil 8: Ray Tracing

www.povray.org – Beispiele

Page 58: Helwig Hauser Teil 8: Ray Tracing Beleuchtung, inkl. Schatten, Reflexionen

Helwig Hauser Teil 8: Ray Tracing

www.povray.org – Beispiele

Page 59: Helwig Hauser Teil 8: Ray Tracing Beleuchtung, inkl. Schatten, Reflexionen

Helwig Hauser Teil 8: Ray Tracing

www.povray.org – Beispiele

Page 60: Helwig Hauser Teil 8: Ray Tracing Beleuchtung, inkl. Schatten, Reflexionen

Helwig Hauser Teil 8: Ray Tracing

Ray Tracing – Weitere Beispiele