Vektorrechnung
Vektoren sind das grundlegenste Element in der 3D-Grafik. Mit ihnen werden Richtungen und Punkte im 3D-Raum festgelegt. Ein Vektor bestimmt eigentlich nur eine bestimmte Strecke im Raum ohne Ursprung und daher kann man einen Vektor beliebig verschieben ohne dass es sich danach um einen anderen Vektor handelt. Man stellt sich einen Vektor üblicherweise als einen Pfeil vor den man nicht drehen aber beliebig verschieben kann.
Möchte man einen bestimmten Punkt im Raum mit einem Vektor definieren, so legt man fest, dass der Ursprung des Vektors der Ursprung des Koordinatensystems ist (=(0,0,0)). Diese Vektoren nennt man dann Ortsvektoren und schreibt sie mit einem großen Buchstaben mit Pfeil darüber, im Gegensatz zu den Richtungsvektoren die mit Kleinbuchstaben geschrieben werden.

Damit ein Punkt im 3D-Raum genau definiert ist, muss dieser mindestens drei Elemente beinhalten: Für jede Raumachse eine Koordinate: X, Y und Z. Die Vektoren besitzen daher auch mindestens drei Elemente wenn es sich um Vektoren für 3D-Koordinaten handelt.
Ein Punkt im 3D-Koordinatensystem
Für die 3-D Grafik haben die Vektoren aber nicht drei, sondern vier Elemente. Das vierte Element ist die sogenannte homogene Koordinate. Diese wird benötigt wenn man auch Verschiebungen mit Matrizen abbilden möchte. Das Thema homogene Koordinaten wird im Matrix-Kapitel beschrieben.
Addition und Subtraktion
Mit Vektoren kann man natürlich auch rechnen - es gibt zum Beispiel die Vektoraddition und -subtraktion. Diese Operationen kann man sich mit den Vektorpfeilen besonders gut vorstellen: Man hängt bei der Addition einfach beide Vektorpfeile hintereinander und erhält mit der Spitze des letzten Vektors den Endpunkt der Addition. Bei der Subtraktion muss man den um 180° gedrehten Vektor anfügen. Eine Drehung um 180° entspricht der skalaren Multiplikation aller Vektorelemente mit -1 so dass die Subtraktion hier analog zu den "normalen" Zahlen funktioniert. Schließlich gilt in der Algebra auch: 
Unten auf der Seite findet ihr ein Java-Applet mit dem ihr unter anderem auch die Vektoraddition- und Subtraktion interaktiv ausprobieren könnt.
Vektoren werden addiert und subtrahiert indem sie elementweise addiert bzw. subtrahiert werden.


Skalare Multiplikation
Multiplizieren und dividieren kann man Vektoren untereinander nicht - dies geht nur in der Kombination Vektor und skalare Zahl. Durch die Multiplikation einer Zahl mit einem Vektor wird dieser um diese Zahl verlängert bzw. verkürzt. Negative Zahlen kehren die Richtung des Vektors um:

Länge eines Vektors
Die Länge eines Vektors wird auch euklidische Länge genannt. Es handelt sich dabei um die Verallgemeinerung des Satz des Pythagoras in vier Dimensionen:

Winkel zwischen zwei Vektoren
Der Winkel zwischen zwei Vektoren wird mit dem Skalarprodukt ermittelt (nicht zu verwechseln mit der skalaren Multiplikation):
Der Winkel zwischen den Vektoren
und 

Eine wichtige Eigenschaft des Skalarprodukts ist die, dass es positiv ist wenn der Winkel zwischen den beiden Vektoren kleiner als 90 Grad ist. Dies geht daraus hervor, dass der Kosinus im Bereich -90 bis 90 Grad positiv ist und daran auch das Dividieren durch die beiden Längen nichts ändert. Interessiert man sich also nur dafür ob der Winkel zwischen den Vektoren
und
kleiner als 90 Grad ist, genügt es das Skalarprodukt zu bilden und kann sich das Dividieren durch die Längen sparen - ein enormer Performancegewinn!
Die am meisten genutzte Eigenschaft ist aber die, dass das Skalarprodukt genau dann 0 ist wenn
und
aufeinander senkrecht stehen.
Das Skalarprodukt wird ermittelt indem die Elemente der beiden Vektoren elementweise multipliziert und die Produkte anschließend addiert werden:

Senkrechte Projektion
Die senkrechte Projektion projiziert einen Vektor
senkrecht auf einen zweiten Vektor
:
Senkrechte Projektion eines Vektors

Die senkrechte Projektion wird unter anderem dann benötigt, wenn es darum geht die Anteile eines Vektors an einer orthogonalen(=senkrechten) Linearkombination zu ermitteln.
Da in der 3-D Grafik in den meisten Fällen mit senkrecht zueinander stehenden Koordinatenachsen gearbeitet wird, wird auch die senkrechte Projektion oft benötigt wenn Koordinaten zu den Koordinatensystemachsen ermittelt werden sollen.
In der Anwendung in den späteren Kapiteln als auch die Demonstration im Applet unten auf der Seite dürfte das Prinzip klarer werden.
Das Kreuzprodukt
Mit dem Kreuzprodukt kann man einen Vektor
errechnen der auf zwei gegebenen Vektoren
und
senkrecht steht. Damit dies funktioniert, müssen die Vektoren
und
linear unabhängig sein. Dies bedeutet, dass sie nicht parallel zueinander sein dürfen (egal wie sie ausgerichtet oder wie lang sie sind).

Etwas zu Koordinatensystemen
In den späteren Kapiteln wird es ganz besonders wichtig sich eine allgemeingültige Tatsache bewusst zu machen:
Koordinatensysteme sind nicht statisch!
Dies bedeutet, dass die uns so vertraute X-Achse nur aufgrund einer Konvention mit dem Vektor (1,0,0) identisch ist. Das gleiche gilt auch für die Y- und Z-Achse. Genausogut könnte man beliebige andere Vektoren als Koordinatenachsen verwenden - solange sie linear unabhängig sind. Betrachten wir erstmal einen Punkt im 3D-Raum unter der Zuhilfenahme unseres "normalen" Koordinatensystems (der Übersichtlichkeit und des besseren Verständnisses halber beschränke ich mich hier auf 3-elementige Vektoren):

Die Koordinaten dieses Punktes bedeuten nun, dass er 3 Einheiten in Richtung der X-Achse, 2 Einheiten in Richtung der negativen Y-Achse sowie 7 Einheiten in Richtung der Z-Achse liegt. Dies können wir auch in einer Formel ausdrücken:
Der Beispielpunkt als Linearkombination

Hier erkennt man die drei Komponenten wieder, sowie die Koordinatenachsen an denen diese angelegt werden. Man kann zeigen, dass für jede beliebige Kombination von drei linear unabhängigen Vektoren es genau einen Satz von drei Komponenten gibt mit denen die Linearkombination den gleichen Punkt wie zuvor ergibt.
Transformation
Möchten wir nun unseren Punkt zum Beispiel skalieren, dann kann man natürlich die drei Komponenten 3, -2 und 7 nehmen und diese mit einer Zahl multiplizieren. Wenn es aber um sehr viele Punkte geht, muss man das mit allen Punkten machen und zudem würde man ja auch seine Ursprungsdaten verändern (Okay, dass man die Daten vorher kopieren kann beachten wir nun mal nicht). Sehr viel flexibler ist es jedoch das Koordinatensystem so zu modifizieren, dass das neue Koordinatensystem automatisch für uns diese Operation durchführt.
Wenn wir ab sofort nur noch mit Linearkombinationen der Koordinatenachsen wie in Formel 11 rechnen, können wir unsere 3D-Objekte in beliebigen Systemen zeichnen ohne erhöhten Rechenaufwand. Es wird zu Beginn der Zeichenoperation das gewünschte Koordinatensystem eingestellt und dann drauf los gezeichnet (so wird das in OpenGL gemacht). Wir können unsere Objekte um beliebige Achsen drehen indem wir einfach das zugrunde liegende Koordinatensystem drehen ;-)
Nehmen wir als Faktor mal den Wert 3. Um nun das Koordinatensystem so einzustellen, dass alle Punkte die mit ihm berechnet oder gezeichnet werden sich entsprechend verändern, wenden wir den Faktor einfach auf alle drei Achsen des Koordinatensystems an und erhalten:

Dies ist nur ein erstes kleines Beispiel was wir im nächsten Kapitel mit Matrizen machen werden - mit Matrizen wird das Jonglieren mit Koordinatensystemen zur Perfektion erhoben.



