Bei der perspektivischen Projektion wird in einem ersten Schritt der
Pyramidenstumpf, der den Bildraum darstellt und frustum genannt
wird, auf einen regelmäßigen Pyramidenstumpf abgebildet.
Dessen Grundfläche ist ein Quadrat, das mit
jeder Seitenfläche einen Winkel von 45 einschließt.
Dabei werden die
-Koordinaten nicht und die
- und
-Koordinaten proportional zur
-Koordinate verändert, was einer Scherung an der
-Achse entspricht.
Im zweiten Schritt wird der regelmäßige Pyramidenstumpf in den normierten
Einheitswürfel transformiert.
Dazu müssen die
- und
-Koordinaten proportional zu den reziproken
-Werten
skaliert werden.
Die Front Plane entspricht im NPC der
Ebene
und die Back Plane der Ebene
.
Beide Schritte werden im Programm zu einer Transformationsmatrix
zusammengefaßt.
Bei deren Anwendung auf die homogenen Koordinaten ist zu beachten, daß
die resultierenden Punkte im allgemeinen -Werte ungleich 1 haben, die
affinen Koordinaten also erst nach der Division durch
vorliegen.
Außerdem ist diese Abbildung nur bezüglich der
- und
-Koordinaten
linear.
In
-Richtung werden die Werte durch die Scherung im zweiten Schritt
reziprok verzerrt,
d.h., äquidistante Punkte längs der
-Achse im VRC
häufen sich im NPC bei
nahe der Back Plane.
Zur Erleichterung der Herleitung wird zunächst das Koordinatensystem so
transformiert, daß der im Ursprung sitzt.
Danach wird das Koordinatensystem an der
-Ebene gespiegelt,
indem die
-Koordinaten mit -1 multipliziert werden.
Danach ist das Koordinatensystem linkshändig. Es seien
und
die Abstände der Frontplane, Bildebene und Backplane
vom Augenpunkt.
Zur Durchführung von Punkt 3.) der Viewing Pipeline wird zunächst die
abgeschnittene Pyramide (= frustum) transformiert in einen symmetrischen
Pyramidenstumpf mit quadratischer Grundfläche und Kanten unter
45.
Es müssen also die -Koordinaten proportional zur
-Koordinate
verändert werden.
Dies entspricht einer Scherung an der
-Achse, so daß die Achse vom
zum Zentrum des ViewWindows mti der
-Achse zusammenfällt.
Zusätzlich wird in
-Richtung so skaliert, daß die Grundseite des
entstandenen Pyramidenstumpfs eine Kantenlänge von
bekommt:
Analoge Überlegungen für die -Werte ergibt:
Als nächstes wird die regelmäßige Pyramide in den
Einheitswürfel
transformiert.
Die front plane
entspricht der Ebene
und die
back plane
der Ebene
.
Da die -Werte proportional zu den reziproken
-Werten skaliert
werden müssen, ergibt sich als Transformation
Der Kehrwert von im Term zu
ist nur möglich, indem
durch einen geeigneten Eintrag in der vierten Zeile der noch
zu konstruierenden Transformationsmatrix erreicht wird, dass
die vierte Komponente des transformierten Punktes den Wert
enthält.
Bei der üblichen Auswertung einer homogenen Koordinate
wird dann durch
geteilt.
Durch diesen Trick müssen aber neben dem Term für
und dem für
auch der Term zu
den Kehrwert von
eingebaut bekommen.
Punkt
soll abgebildet werden auf
,
Punkt
soll abgebildet werden auf
.
Durch Lösen des Gleichungssystems
erhält man
Durch Lösen des Gleichungssystems
erhält man
Zwar wird hierdurch die Szene im vorderen -Bereich nicht-linear gestaucht,
zur Bestimmung der Sichtbarkeit reichen die ermittelten
-Werte
jedoch aus, da ihre Ordnung erhalten bleibt.
Durch Verknüpfen der beiden letzten Transformationen
erhält man in Schritt 3.) als Transformationsmatrix
Um wieder ein rechtshändiges Koordinatensystem zu erhalten,
wird zunächst das Koordinatensystem so transformiert, daß
die Back Plane in die -Ebene verschoben wird.
Abschließend wird wieder an der
-Ebene gespiegelt.