helwig hauser teil 8: ray tracing beleuchtung, inkl. schatten, reflexionen
Post on 06-Apr-2015
110 Views
Preview:
TRANSCRIPT
Helwig Hauser Teil 8: Ray Tracing
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
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 . . .
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
Helwig Hauser Teil 8: Ray Tracing
Ray Tracing
Charakteristika anhand von Beispielen
Helwig Hauser Teil 8: Ray Tracing
RT: Reflexionen, BrechungenNormalerw. aber nicht: Kaustiken Prismen-
effekt
Helwig Hauser Teil 8: Ray Tracing
RT: Photo-RealismusNormalerw. aber nicht: Schmutz Out-door Tiefen-
unschärfe
Helwig Hauser Teil 8: Ray Tracing
RT: Licht und SchattenNormalerw. aber nicht: Halbschatten,
i.e., flächige bzw. räuml. Lichtquellen
Helwig Hauser Teil 8: Ray Tracing
RT: Komplexe ObjekteNormalerw. aber nicht: komplexe
Modelle realer Obj. (Tiere, etc.)
Helwig Hauser Teil 8: Ray Tracing
Ray Tracing – CharakteristikaPhoto-realistische ErgebnisbilderSichtbarkeitsalgorithmusLichtquellen (auch mehrere), SchattenReflexionen, BrechungenKomplexe Objekte (gekrümmt, fraktal)Sehr aufwendig
Helwig Hauser Teil 8: Ray Tracing
Ray Tracing – Strahlverfolgung
Primärstrahlen, Sekundärstrahlen
Helwig Hauser Teil 8: Ray Tracing
Ray Tracing – StrahlenPrimärstrahlenSekundärstrahlen: Reflexionen R, Brechungen T
RT-Graph
Helwig Hauser Teil 8: Ray Tracing
Abb ildungsebene
L ich tque lle
P ixe l
Helwig Hauser Teil 8: Ray Tracing
SphereSphere
CubeCube
EyeEye
CylinderCylinder
refractedreflected
*) RT Baum für gezeigte Folie
Helwig Hauser Teil 8: Ray Tracing
Ray Tracing – Algorithmus
Sehstrahl, Schnittberechnung,
Beleuchtung & Schatten, Rekursion
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
Helwig Hauser Teil 8: Ray Tracing
Ray Tracing – Beispiel (1)
1. Sichtbarkeitsberechnung:
welcher Objektpunkt wird betrachtet?
Helwig Hauser Teil 8: Ray Tracing
Ray Tracing – Beispiel (2)
L1
2a: Lokale Beleuchtung (1. Licht): Phong!
Helwig Hauser Teil 8: Ray Tracing
Ray Tracing – Beispiel (3)
L2
L1
2b: Lokale Bel.(2. Licht): Schatten!
Helwig Hauser Teil 8: Ray Tracing
Ray Tracing – Beispiel (4)
3:Indir. Bel. (Spiegel.)
L2
L1
Helwig Hauser Teil 8: Ray Tracing
Ray Tracing – Beispiel (5)
3.1:Schattierung des2. Objekts
L2
L1
Helwig Hauser Teil 8: Ray Tracing
Ray Tracing – Beispiel (6)
L2
L1
0.:Bild: alles fürjedes Pixel
Helwig Hauser Teil 8: Ray Tracing
Ray Tracing – Beispiel (7)
PerspektivischeProjektion
Reflexionen
Schatten
LokaleBeleuchtung
L2
L1
Helwig Hauser Teil 8: Ray Tracing
Ray Tracing – Schnittberechnungen
Kugel,Polygon,
Box
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.
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
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)
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.
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
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
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
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
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!
Helwig Hauser Teil 8: Ray Tracing
Ray Tracing – Beleuchtung
Beleuchtung = lokale Beleuchtung+ Reflexionsanteil+ Brechungsanteil
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
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 )(
Helwig Hauser Teil 8: Ray Tracing
Ray Tracing: Reflexion, BrechungReflexionsstrahl
Brechungsstrahl Brechungsgesetz
NNuuR )2(
ir
ir
sinsin
Helwig Hauser Teil 8: Ray Tracing
Beleuchtung: Reflexion
=
Hrefl
Irefl … Reflexionsanteilkrefl … Reflexionskoeffizient des MaterialsHrefl … Einfallender Teil in Reflexionsrichtung
Irefl = krefl Hrefl
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
Helwig Hauser Teil 8: Ray Tracing
Ray Tracing – Beispiele
3 Beispiele
Helwig Hauser Teil 8: Ray Tracing
Ray Tracing Beispiel 1
Szene:37 Kugeln720 Polyg.
Algorithmus:9 Strahlenper PixelTiefe 5
Helwig Hauser Teil 8: Ray Tracing
Ray Tracing Beispiel 2
Szene:3036 Primitive2 Lichtquellen
Algorithmus:1 Strahl per Pixel1.6 Mio. Strahlen
Helwig Hauser Teil 8: Ray Tracing
Ray Tracing Beispiel 3
Szene:1298 Polyg.4 Kugeln76 Zylider35 Quadriken5 Lichtquellen
Algorithmus:Light-Buffer
Helwig Hauser Teil 8: Ray Tracing
Ray Tracing Beispiel 3 – Detail
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
Helwig Hauser Teil 8: Ray Tracing
Distributed Ray Tracing
Anti-Aliasing, Halbschatten, diffuse Reflexion, etc.
Helwig Hauser Teil 8: Ray Tracing
Distributed Ray TracingBerücksichtigung folgender Effekte: Aliasing Unscharfe Spiegelung Milchglaseffekte Halbschatten Tiefenunschärfe Bewegungsunschärfe
Helwig Hauser Teil 8: Ray Tracing
Anti-AliasingStochastisches Sampling mit Gauss-Gewichtung
Helwig Hauser Teil 8: Ray Tracing
Unscharfe SpiegelungSimulation von gerichtet-diffusen Reflexionen durch Variation des Reflexionswinkels
Helwig Hauser Teil 8: Ray Tracing
Halbschatten
source
light shadow
penumbra
Helwig Hauser Teil 8: Ray Tracing
TiefenunschärfeAbhängigkeit von der Blende berücksichtigen (Durchmesser)
Scenepixel lens focus point
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
Helwig Hauser Teil 8: Ray Tracing
Distributed Ray Tracing – Bsp.
Halbschatten, Blur, Spektren
Helwig Hauser Teil 8: Ray Tracing
Distributed Ray Tracing – Bsp.
Blur & Tiefenunschärfe
Helwig Hauser Teil 8: Ray Tracing
Distributed Ray Tracing – Bsp.
Helwig Hauser Teil 8: Ray Tracing
www.povray.org – Beispiele
Helwig Hauser Teil 8: Ray Tracing
www.povray.org – Beispiele
Helwig Hauser Teil 8: Ray Tracing
www.povray.org – Beispiele
Helwig Hauser Teil 8: Ray Tracing
www.povray.org – Beispiele
Helwig Hauser Teil 8: Ray Tracing
Ray Tracing – Weitere Beispiele
top related