Warum ist 4×4 Matrizen benutzt, um Dinge in 3D zu verwandeln?

Frage
tatsächlich 4×4 Matrizen kommen sehr nützlich in Dinge in 3D zu verwandeln! Sie können einen Vektor im Fall der Übersetzung hinzufügen.

Grund für die Verwendung von 4×4 Matrizen in 3D Aktivitäten Trans

Der Grund dafür, um eine Matrix zu verwenden, läuft darauf hinaus, eine einheitliche Art und Weise mit verschiedenen kombinierten Transformationen zu handhaben.

Beispielsweise, Rotation wird in der Regel eine Matrix durchgeführt unter Verwendung von, so, um mit mehreren Transformationen umgehen (Rotation / Translation / Skalierung / Projektion…usw) in einer einheitlichen Art und Weise, Sie müssen sie in einer Matrix kodieren.

Gut, mehr technisch gesehen; eine Transformation Zuordnen einen Punkt / Vektor zu einem anderen Punkt / Vektor.

p` = T(p); 

wo P` wird der transformierte Punkt T und(p) Funktion ist die Transformation.

Da wir nicht über eine Matrix verwenden wir müssen dies tun, mehrere Transformationen zu kombinieren:

p1 = T(p);

pFinale = M.(p1);

Nicht nur kann eine Matrix mehrere Arten von Transformationen zu einer einzigen Matrix kombinieren (z.B.. affine, linear, projektive).

eine Matrix gibt uns die Möglichkeit Ketten von Transformationen zu kombinieren und dann Batch multiplizieren sie. Das spart uns eine Menge von Zyklen in der Regel von der GPU (dank @ChristianRau für den Hinweis it out).

TFinale = T. * R * P; // ÜbersetzendrehenProjekt

pFinale = T.Finale*p;

Es ist auch gut, darauf hinzuweisen, dass GPUs und sogar einige CPUs für Vektoroperationen optimiert werden; SIMD CPUs und GPUs sind datengesteuerte Parallelprozessoren von Design mit, so Matrizen passt perfekt mit Hardware-Beschleunigung (tatsächlich, GPUs wurden fit Matrix / Vektor-Operationen entworfen).


KREDIT:

https://gamedev.stackexchange.com/questions/72044/why-do-we-use-4×4-Matrizen-to-Transform-Dinge-in-3D?answertab = aktiv # tab-top

Lassen Sie eine Antwort