• Keine Ergebnisse gefunden

Computer-Graphik II

N/A
N/A
Protected

Academic year: 2021

Aktie "Computer-Graphik II"

Copied!
15
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

C G C C G C

Computer-Graphik II

Ray-Tracing

G. Zachmann

Clausthal University, Germany cg.in.tu-clausthal.de

C G C C G

Die antike Erklärung des Sehens: Sehstrahlen

C

(2)

G. Zachmann Computer-Graphik 2 - SS 08 Ray-Tracing 3

C C

Effekte für eine realistische Darstellung

  Das lokale Beleuchtungsmodell versagt bei folgenden Effekten

  (Soft) Shadows (Halbschatten)

  Reflexion (Spiegel und Glanz)

  Transparenz (Wasser, Glas)

  Interreflexion ("color bleeding")

  …

C G C C G

Globale Beleuchtungsrechnung

C

  Ziel: Photorealistisches Rendering

  Die "Lösung": die Rendering-Gleichung [Kajiya, Siggraph 1986]

L i = aus Richtung ω i inzidentes "Licht"

L e = emittiertes Licht

L r = in Richtung ω r reflektiertes Licht ρ = Reflexionskoeffizientenfunktion (BRDF) Ω = Halbkugel um Normale

L i

L r θ i

x

ρ

L r (x, ω r ) = L e (x, ω r ) +

!

ρ(x, ω r , ω i )L i (x, ω i ) cos(θ i )dω i

(3)

G. Zachmann Computer-Graphik 2 - SS 08 Ray-Tracing 5

C C

  Analytische Lösung ist unmöglich!

  Die Rendering Gleichung kann als rekursive Funktion aufgefaßt werden

  Daraus folgen praktische Approximations-Verfahren, die auf der Verfolgung des Lichts entlang Strahlen beruhen

  Ray tracing [Whitted, Siggraph 1980,

"An Improved Illumination Model for Shaded Display"]

  Radiosity [Goral et. al, Siggraph 1984,

"Modeling the Interaction of Light between diffuse Surface"]

  Monte Carlo Verfahren

Turner Whitted, Microsoft Research

C G C C G

Rekursives Ray-Tracing

C

  Algorithmus zur Approximation der Rendering-Gleichung

  Modelliert werde nur:

  Reflektion

  Beugung

  Verdeckungsrechnung

  Schatten

  Strahlen werden nur in Richtung des reflektierten bzw.

gebrochenen Strahls verfolgt

  Annahmen:

  Punktlichtquellen

  Phong-Modell

  keine Halbschatten

(4)

G. Zachmann Computer-Graphik 2 - SS 08 Ray-Tracing 7

C C

Funktionsweise

1.  Synthetische Kamera = Augpunkt + Bildebene in Weltkoordinaten 2.  Schieße Strahlen vom Augpunkt aus durch die Pixel in die Szene

3.  Falls der Strahl mehr als ein Objekt schneidet, betrachte nur den ersten Schnittpunkt 4.  Schieße weitere Strahlen vom dort zu allen Lichtquellen (Schattenstrahlen; "shadow feelers") 5.  Treffen diese Schattenstrahlen auf ein Objekt, so liegt der betrachtete Flächenpunkt im Schatten.

Ansonsten wird das Phong-Beleuchtungsmodell ausgewertet

6.  Ist das sichtbare Objekt spiegelnd, dann schieße weiteren reflektierten Strahl in die Szene 7.  Ist das Objekt transparent, so wird zusätzlich ein gebrochener Strahl weiterverfolgt

C G C C G

Der Strahlbaum

C

  Grundidee des Raytracing: Strahlengänge von den Lichtquellen bis zum Auge konstruieren, aber dabei beim Auge starten und diese Strahlengänge rückwärts "suchen"

  Ergibt (konzeptionell!) einen Strahlenbaum:

E1 = Primärstrahl Si = Schattenstrahl Ri = reflektierter Strahl

Ti = transmittierter Strahl

(5)

G. Zachmann Computer-Graphik 2 - SS 08 Ray-Tracing 9

C C

  Visualisierung eines Strahlbaumes (eignet sich hervorragend zum Debugging)

incoming reflected ray shadow ray

transmitted (refracted) ray

C G C C G

Das Beleuchtungsmodell

C

  Beleuchtung auf der Fläche

r s = Reflexionskoeffizient für das reflektierte Licht L s r t = Transmissionskoeffizient für das transmittierte Licht L t

  Abbruch der Rekursion:

  Falls maximale Rekursionstiefe erreicht; oder/und,

  falls Beitrag zur Beleuchtung zu klein (schrumpft wie r t n )

Rek. Tiefe: 3 Rek. Tiefe: 5 Rek. Tiefe: 100

l r

e n

Wiederholung Phong

L ges = L Phong + r s L s + r t L t

(6)

G. Zachmann Computer-Graphik 2 - SS 08 Ray-Tracing 11

C C

Demo

http://www.siggraph.org/education/materials/HyperGraph/raytrace/rt_java/raytrace.html

C G C C G

Eines der ersten Ray-Tracing-Bilder

C

Turner Whitted 1980

(7)

G. Zachmann Computer-Graphik 2 - SS 08 Ray-Tracing 13

C C

Albrecht Dürers "Ray-Casting-Maschinen" [16. Jhrdt.]

C G C C G C

(8)

G. Zachmann Computer-Graphik 2 - SS 08 Ray-Tracing 15

C C

Beispiele

Jensen, Lightscape

C G C C G C

Objekt "sphere flake" aus der "Standard Procedural Databases" (SPD) von Eric Haines

[http://www.acm.org/tog/resources/SPD/ ].

(9)

G. Zachmann Computer-Graphik 2 - SS 08 Ray-Tracing 17

C C

C G C C G C

(10)

G. Zachmann Computer-Graphik 2 - SS 08 Ray-Tracing 19

C C

Die Kamera (ideale Lochkamera)

A

O

for ( t = 0; t < h; t ++ ) for ( s = 0; s < b; s ++ ) ray.from = A

ray.at = O + s

.

x + t

.

y trace( 0, ray, &color );

putPixel( x, y, color );

near h/2

θ

Die Main-Loop eines Ray-Tracers

h = 2 · near · tan θ 2 O = A near · z b

2 x h 2 y

C G C C G

Älteste Abbildung einer Lochkamera

C

Von R. Gemma Frisius, 1545

(11)

G. Zachmann Computer-Graphik 2 - SS 08 Ray-Tracing 21

C C

Camera Obscura

C G C C G

Andere sonderbare Kameras

C

  Mit Ray-Tracing sind andere Projektionen sehr einfach

  Z.B. Fischauge, Omnimax, Panorama

(12)

G. Zachmann Computer-Graphik 2 - SS 08 Ray-Tracing 23

C C

C G C C G

Sekundärstrahlen

C

  Annahme: Hit zwischen

Primärstrahl und Szene gefunden

  Reflektierter Strahl:

! ( d · n) · n ( d) "

· 2 + ( d) = d 2(d · n) · n

! n ! = 1

n

d r

(13)

G. Zachmann Computer-Graphik 2 - SS 08 Ray-Tracing 25

C C

Gebrochener Strahl

  Brechungsgesetz [Snell ~1600] :

  Der transmittierte Strahl:

  Brechungsindizes: Luft Wasser Glas Diamant

1.0 1.33 1.5 - 1.7 2.4

n 1 sin θ 1 = n 2 sin θ 2

t = n 1

n 2 (d + n cos θ 1 ) n cos θ 2

cos θ 1 = dn cos 2 θ 2 = 1 n 2 1

n 2 2

! 1 (dn) 2 "

n d

t

C G C C G C

| n | = | b | = 1

t = cos θ 2 · ( n) + sin θ 2 · b d = cos θ 1 · ( n) + sin θ 1 · b

b = d + n · cos θ 1

sin θ 1

t = n · cos θ 2 + sin θ 2

sin θ 1

(d + n · cos θ 1 ) sin θ 2

sin θ 1

= n 1

n 2

cos θ 1 = n · ( d)

n

t

b d

d r θ 1

θ 1 θ 2

cos θ 2 ausrechnen:

sin θ 2 = n 1 n 2 sin θ 1

sin 2 + cos 2 = 1 cos 2 θ 2 = 1 ( u 1

u 2 sin θ 1 ) 2

(14)

G. Zachmann Computer-Graphik 2 - SS 08 Ray-Tracing 27

C C

  Totalreflexion:

wenn Radikand < 0 sin θ 2 n n

12

C G C C G

Refraction and the Lifeguard Problem

C

  Running is faster than swimming

Beach

Person in trouble

Lifeguard Water

Run

Swim

(15)

G. Zachmann Computer-Graphik 2 - SS 08 Ray-Tracing 29

C C

Wirkung des Brechungsindex

n=1.0 n=1.1 n=1.2 n=1.3

n=1.4 n=1.5 n=1.6 n=1.7

Referenzen

ÄHNLICHE DOKUMENTE

4.  Was macht man, falls das Gebiet nicht durch Polygonzug (stückweise lineare Kurve) beschränkt ist, sondern durch eine glatte, geschlossene (konvexe) Kurve?.?.

  globale Variable, nur im Vertex-Shader, kann sich pro Vertex ändern.  

  Der Dynamikbereich (dynamic range) eines Bildes ist das Kontrastverhältnis zwischen dem hellsten und dunkelsten Teil..   Der Dynamikbereich eines

3.  Falls der Strahl mehr als ein Objekt schneidet, betrachte nur den ersten Schnittpunkt 4.  Schieße weitere Strahlen vom dort zu allen Lichtquellen (Schattenstrahlen;

  Falls Strahl zur Laufzeit Zelle trifft, die Abbruchkriterium nicht erfüllt, erzeuge dann weitere Levels.

  Man kann innerhalb eines Frames zwischen fixed functionality und eigenem Programm umschalten (aber natürlich nicht innerhalb eines Primitives, also nicht zwischen

  Mittels Texturen können Daten an Shader übergeben werden.  Interpretation bleibt

 Es gibt zu jeder Farbe genau 1 Band um die Mandelbrot-Menge, d.h., es gibt genau 1 Band mit Werten c, deren Folgenglieder schon nach 1 Iteration &gt; 2 wurden, genau 1 Band nach