Reflexion: Unterschied zwischen den Versionen

Aus DGL Wiki
Wechseln zu: Navigation, Suche
K (Reflexionen in Ray-Tracern)
K (Reflexionen in Ray-Tracern)
Zeile 9: Zeile 9:
  
 
=== Reflexionen in Ray-Tracern ===
 
=== Reflexionen in Ray-Tracern ===
Angenommen sei ein Strahl, der aus der Richtung v (normiert) auf eine Oberfläche mit Normale r (auch normiert) trifft. Dann bestimmt sich die Reflexions-Richtung durch die Formel:
+
Angenommen sei ein Strahl, der aus der Richtung v (normiert) auf eine Oberfläche mit Normale r (auch normiert) trifft. Dann bestimmt sich die normierte Reflexions-Richtung durch die Formel:
 
[[Bild:Reflexion_Formel.png|center]]
 
[[Bild:Reflexion_Formel.png|center]]
Wie entsteht diese Formel: Man zeiche die gegebene Situation auf. Der Kreis beschreibe den Einheitskreis ( wir haben es ja mit normierten Vektoren zu tun ). Der Normalenvektor und die Oberfläche werden ohne weiteres eingezeichnet. Die eintreffende Richtung v und die Refexionsrichtung werden einmal ankommend und einmal abgehend am Schnittpunkt eingezeichnet. Dann kann man den spitzeren Winkel γ  leicht einmalen, der zwischen n und v ist:
+
Wie entsteht diese Formel: Man zeiche die gegebene Situation auf. Der Kreis beschreibe den Einheitskreis ( wir haben es ja mit normierten Vektoren zu tun ). Der Normalenvektor und die Oberfläche werden ohne weiteres eingezeichnet. Die eintreffende Richtung v und die Refexionsrichtung werden einmal ankommend und einmal abgehend (also durch die Fläche hindurch) am Schnittpunkt eingezeichnet. Dann kann man den spitzeren Winkel γ  zwischen n und v leicht einzeichnen:
 
[[Bild:Reflexion_Konstruktion.png|center]]
 
[[Bild:Reflexion_Konstruktion.png|center]]
 
Weil man es mit dem Einheitskreis zu tun hat, kann den Hilfsvektor p unterhalb von n durch cos(γ)*n bestimmen und weil cos(γ) gerade das Skalarprodukt zwischen n und v ist, gilt:
 
Weil man es mit dem Einheitskreis zu tun hat, kann den Hilfsvektor p unterhalb von n durch cos(γ)*n bestimmen und weil cos(γ) gerade das Skalarprodukt zwischen n und v ist, gilt:

Version vom 24. Dezember 2006, 14:21 Uhr

Hinweis: Dieser Artikel ist noch unvollständig.
(Mehr Informationen/weitere Artikel)

{{{1}}}

Incomplete.jpg

Reflexion

Reflextion aus einem Raytracer

Überischt

Reflexionen treten in unserer Umgebung häufig auf. Der Spiegel an der Wand, das eigene verzerrte Abbild im Löffel oder deutlich subtiler auf eigentlich matten Gegenständen, auf denen man sich mit etwas mühe recht unscharf erkennen kann. Sie treten so häufig auf, daß der Versuch virtuelle Umgebungen photorealistisch anzuzeigen, ohne Reflexionen darzustellen, scheitern muss. Tatsächlich zähle ich auf meinem halbwegs aufgeräumten Schreibtisch 13 Gegenstände, in denen man sich deutlich spiegeln kann.

Reflexionen in OpenGl

ich möchte erstellt werden

Reflexionen in Ray-Tracern

Angenommen sei ein Strahl, der aus der Richtung v (normiert) auf eine Oberfläche mit Normale r (auch normiert) trifft. Dann bestimmt sich die normierte Reflexions-Richtung durch die Formel:

Reflexion Formel.png

Wie entsteht diese Formel: Man zeiche die gegebene Situation auf. Der Kreis beschreibe den Einheitskreis ( wir haben es ja mit normierten Vektoren zu tun ). Der Normalenvektor und die Oberfläche werden ohne weiteres eingezeichnet. Die eintreffende Richtung v und die Refexionsrichtung werden einmal ankommend und einmal abgehend (also durch die Fläche hindurch) am Schnittpunkt eingezeichnet. Dann kann man den spitzeren Winkel γ zwischen n und v leicht einzeichnen:

Reflexion Konstruktion.png

Weil man es mit dem Einheitskreis zu tun hat, kann den Hilfsvektor p unterhalb von n durch cos(γ)*n bestimmen und weil cos(γ) gerade das Skalarprodukt zwischen n und v ist, gilt:

Reflexion Hilfsvektor.png

Bei genauer Betrachtung stellt man fest, daß dieser Vektor p auch am rechten Rand auftaucht. Bilded man dann eine geschlossene Vektorkette, so ergibt sich:

Reflexion Formelrechnung.png

Siehe auch

Environment_Mapping, Cube Mapping, Sphere Mapping (am Ende), Stencilpuffer

Links