Graphics Reference
In-Depth Information
Abb. 9.77
Virtuelle Projektionsfläche als affines Abbild der realen Projektionsfläche des Bild-
schirms (Szene mit Beispielquader)
Ein einfaches RayTracing-Programm
Der simple Hinweis, dass von - einem - Auge des Beobachters
B
ein Sehstrahl
durch ein Pixel der Projektionsfläche in die Szene geschickt und weiterverfolgt
wird, ignoriert ein relativ wichtiges Detail: Wie schon beim „Prinzip“ erwähnt, ar-
beitet RayTracing vollständig im Objektraum. Sowohl Szene als auch Beobachter-
position sind in metrischen Welt- bzw. Globalkoordinaten beschrieben und passen
folglich nicht zum Pixelraster des Bildschirms (oder Druckers). Man verwendet
daher zunächst eine virtuelle Projektionsfläche als affines Abbild der realen Pro-
jektionsfläche des Bildschirms und überträgt das Pixelraster proportional auf die
virtuelle Projektionsfläche (Abb.
9.77
).
Mit der Beobachterposition B und einem beliebigen Referenzpunkt R in der Sze-
ne (für die der bekannte Quader herhalten muss) lässt sich der Vektor
{v}
berechnen.
Im allgemeinen Fall liegt er schief im Raum und hat mehrere Eigenschaften:
{v}
ist die Projektionsrichtung bzw. Sichtachse.
in Richtung
{v}
verläuft die Z
V
-Achse des View- und Projektionssystems.
{v}
bzw. Z
V
steht senkrecht auf der Projektionsfläche, die genau wie
{v}
schief
im Raum liegt.
{v}
ist zugleich die Normale
{n}
der Projektionsfläche. Mit normiertem
{n}
ist außerdem die Ebenengleichung der Projektionsfläche bekannt. Die fehlende
Konstante ergibt sich mit
{v}
aus der gegebenen Distanz
d
zwischen Beobach-
ter B und Ursprung U des Projektionssystems. (Dieser Zusammenhang ist nur
interessant in Verbindung mit dem Globalsystem).
Das Viewsystem in Abb.
9.77
hat seinen Ursprung beim Beobachter, das Projek-
tionssystem auf der Projektionsfläche. Zwischen beiden liegt die Distanz
d
(senk-
rechter Abstand!), ansonsten sind beide Systeme identisch.
Nun kann die Projektionsgeometrie festgelegt werden. Hierzu ist die
Distanz d
vom Beobachter zur Projektionsfläche sowie deren Breite
Horz
als Eingabedaten
erforderlich (Abb.
9.78
). Die Höhe
Vert
wird nicht eingegeben, sondern aus dem