Freigeben über


Koordinatensysteme

In der Regel verwenden 3D-Grafikanwendungen eine von zwei Arten von kartesischen Koordinatensystemen: linkshändig oder rechtshändig. In beiden Koordinatensystemen zeigt die positive x-Achse rechts und die positiven Y-Achsenpunkte nach oben.

Links- und rechtshändige Koordinaten

Sie können sich merken, welche Richtung die positiven Z-Achsenpunkte zeigen, indem Sie die Finger ihrer linken oder rechten Hand in die positive x-Richtung zeigen und sie in die positive Y-Richtung locken. Die Richtung, in der sich der Daumen in Richtung oder weg von Ihnen befindet, ist die Richtung, in der die positiven Z-Achsenpunkte für dieses Koordinatensystem liegen. Die folgende Abbildung zeigt diese beiden Koordinatensysteme.

Abbildung der linkshändigen und rechtshändigen Kartenkoordinatensysteme

Direct3D verwendet ein linkshändiges Koordinatensystem. Obwohl linkshändige und rechtshändige Koordinaten die am häufigsten verwendeten Systeme sind, gibt es eine Vielzahl anderer Koordinatensysteme, die in 3D-Software verwendet werden. Es ist z. B. nicht ungewöhnlich, dass 3D-Modellierungsanwendungen ein Koordinatensystem verwenden, in dem die Y-Achse auf den Viewer zeigt und die Z-Achse nach oben zeigt.

Scheitelpunkte und Vektoren

Aufgrund des Koordinatensystems kann eine X-, Y- und Z-Koordinate einen Punkt im Raum (ein "Scheitelpunkt") oder eine 3D-Richtung (ein "Vektor") definieren.

Eine Auflistung von Scheitelpunkten kann zum Definieren von Linien und Formen verwendet werden. Die einfachsten durch Scheitelpunkte definierbaren Objekte werden als Grundtypen bezeichnet, und ein komplexeres Objekt, das durch eine Reihe von Grundtypen definiert wird, wird als "Gitter" bezeichnet.

Die wesentlichen Vorgänge, die in einem 3D-Koordinatensystem definiert sind, sind Übersetzung, Drehung und Skalierung. Sie können diese grundlegenden Transformationen kombinieren, um eine Transformationsmatrix zu erstellen. Ausführliche Informationen finden Sie unter Transformationen.

Wenn Sie diese Vorgänge kombinieren, sind die Ergebnisse nicht kommutativ; Die Reihenfolge, in der Sie Matrizen multiplizieren, ist wichtig.

Portieren von einem rechtshändigen Koordinatensystem

Wenn Sie eine Anwendung portieren, die auf einem rechtshändigen Koordinatensystem basiert, müssen Sie zwei Änderungen an den an Direct3D übergebenen Daten vornehmen:

  • Kippen Sie die Reihenfolge der Dreiecksvertices so, dass das System sie im Uhrzeigersinn von vorne durchläuft. Mit anderen Worten: Wenn die Scheitelpunkte v0, v1, v2 sind, übergeben Sie sie als v0, v2, v1 an Direct3D.
  • Verwenden Sie die Ansichtsmatrix, um den Weltraum um -1 in der Z-Richtung zu skalieren. Kippen Sie dazu das Vorzeichen von _31, _32, _33 und _34 Member der Matrixstruktur, die Sie für Ihre Ansichtsmatrix verwenden.

Koordinatensysteme und Geometrie