Kann ich den Unterschied zwischen den drei kennenlernen? Ein gutes Beispiel wäre auch gut.
Kann ich den Unterschied zwischen den drei kennenlernen? Ein gutes Beispiel wäre auch gut.
Antworten:
Weltkoordinaten sind das Fundament Ihrer Spielwelt. Die 3D-Positionen aller Objekte werden letztendlich entweder direkt oder über eine Knotenhierarchie im Weltraum festgelegt. Der Boden, Gebäude, Bäume und andere stationäre Dinge werden im Weltraum fixiert. Gameplay-Berechnungen und -Physik werden im Weltraum durchgeführt (möglicherweise mit einer lokalen Neuzentrierung aus Präzisionsgründen, wenn die Welt groß ist). Die Achsen der Weltkoordinaten werden häufig als Kompassrichtungen verwendet, z. B. X = Ost, Y = Nord, Z = Oben.
Lokale Koordinaten werden an ein Objekt angehängt (für jedes Objekt gibt es einen lokalen Koordinatenraum). Die Achsen können für das Objekt etwas Bedeutendes darstellen, zum Beispiel X = vorwärts, Y = links, Z = nach oben für ein Objekt wie einen Charakter, ein Fahrzeug, eine Waffe usw., das eine inhärente Ausrichtung aufweist. Während sich das Objekt bewegt, ändert sich die Beziehung zwischen lokalem und Weltraum (ausgedrückt durch eine Transformationsmatrix). Wenn Sie beispielsweise Ihr Auto auf den Kopf stellen, zeigt die lokale Z-Achse ("oben" im lokalen Raum) jetzt "unten" im Weltraum.
Kamera- oder Ansichtskoordinaten sind lokale Koordinaten, die an die Kamera angehängt sind. Dies ist immer noch ein 3D-Koordinatensystem ohne Projektion oder ähnliches, wobei die Achsen jedoch so ausgerichtet sind, dass sie der Bildschirmausrichtung entsprechen: Normalerweise X = rechts, Y = oben, Z = rückwärts. Die Umwandlung von der Welt in den Betrachtungsraum wird oft als "Betrachtungsmatrix" bezeichnet.
Clip-Space-Koordinaten sind die Koordinaten, die von einem Vertex-Shader ausgegeben werden: Koordinaten, auf die die Projektionsmatrix angewendet wurde, nicht jedoch die perspektivische Teilung. Dies ist ein 4D (homogener) Raum. (Welt-, Lokal- und Sichtraum sind 3D mit einem impliziten w = 1.) Der Name ist so, weil dies der Raum ist, in dem das Abschneiden und Keulen von Sichtkegelstümpfen stattfindet (zumindest konzeptionell).
Normalisierte Gerätekoordinaten , auch als "Bildschirmbereich" bekannt, obwohl dieser Begriff etwas locker ist, werden angezeigt, nachdem Sie die perspektivische Aufteilung auf die Koordinaten des Clipbereichs angewendet haben. Die 3D-Koordinaten repräsentieren nun die 2D-Positionen von Punkten auf dem Bildschirm, wobei X und Y in [-1, 1] sind, zusammen mit der Tiefe innerhalb des Tiefenpufferbereichs, Z in [0, 1] für D3D oder [-1, 1 ] für OpenGL. Die Achsenausrichtung ist X = rechts, Y = oben und Z kann je nach Konfiguration des Tiefenpuffers entweder vorwärts oder rückwärts sein.
Gerätekoordinaten sind 2D-Pixelkoordinaten innerhalb des Rendering-Ziels, wobei (0, 0) in der oberen linken Ecke X = rechts und Y = unten ist. Man gelangt zu Gerätekoordinaten, indem man die Ansichtsfenster-Transformation auf die normalisierten Gerätekoordinaten anwendet. Das Ansichtsfenster steuert, mit welchem Pixelversatz und welcher Auflösung das Bild im Renderziel angezeigt wird. Zu beachten ist, dass Gerätekoordinaten keine ganzzahligen Werte sind. Sie sind keine Pixelindizes. Es handelt sich um ein kontinuierliches 2D-Koordinatensystem mit Einheiten in Pixelgröße, in denen jedoch Bruchzahlen (Subpixel) absolut gültig sind. Pixelmitten liegen in diesem Koordinatensystem bei 0,5 Offsets (wie 0,5, 1,5, 2,5, ...).