Perché è 4×4 matrici utilizzate per trasformare le cose in 3D?

Domanda
Infatti 4×4 matrici viene in molto utile per trasformare le cose in 3D! È possibile aggiungere un vettore nel caso della traduzione.

Motivo dietro l'utilizzo di 4×4 matrici a trasformare le cose in 3D

La ragione per usare una matrice si riduce ad avere un modo uniforme per gestire diverse trasformazioni combinate.

Per esempio, rotazione solitamente viene fatto usando una matrice, così al fine di affrontare con più trasformazioni (rotazione / traslazione / scalatura / proiezione…eccetera) in modo uniforme, è necessario codificarli in una matrice.

Bene, più tecnicamente parlando; una trasformazione sta mappando un punto / vettore a un altro punto / vettore.

p` = T(p); 

dove p` è il punto T e trasformato(p) è la funzione di trasformazione.

Dato che non usiamo una matrice che dobbiamo fare questo per combinare più trasformazioni:

p1 = T(p);

pfinale = M(p1);

Non solo una matrice combinare più tipi di trasformazioni in una matrice singola (es. affine, lineare, proiettiva).

Utilizzando una matrice ci dà l'opportunità di combinare catene di trasformazioni e quindi in batch moltiplicarli. Questo ci fa risparmiare un sacco di cicli di solito dalla GPU (grazie a @ChristianRau per segnalarlo).

Tfinale = T * R * P; // tradurreruotareprogetto

pfinale = Tfinale*p;

E 'inoltre bene precisare che GPU ed anche alcune CPU sono ottimizzati per operazioni vettoriali; CPU utilizzando SIMD e GPU essendo pilotati dati processori paralleli di disegno, così utilizzando matrici si sposa perfettamente con accelerazione hardware (in realtà, GPU stati progettati per adattarsi / operazioni vettoriali matrici).


CREDITO:

https://gamedev.stackexchange.com/questions/72044/why-do-we-use-4×4-matrici a trasformare-cose-in-3d?answertab = attiva # tab-top

Lascia una risposta