Por que é 4×4 matrizes utilizadas para transformar as coisas em 3D?

Questão
De fato 4×4 matrizes vem em muito útil para transformar as coisas em 3D! Você pode adicionar um vetor no caso de tradução.

Razão por trás do uso de 4×4 matrizes para transformar as coisas em 3D

A razão para usar uma matriz resume a ter uma forma uniforme para lidar com diferentes transformações combinadas.

Por exemplo, rotação é normalmente feito usando uma matriz, assim, a fim de lidar com múltiplas transformações (rotação / tradução / escamação / projecção…etc) de uma maneira uniforme, você precisa codificá-los em uma matriz.

Bem, mais tecnicamente falando; uma transformação é o mapeamento de um ponto / vector para outro ponto / vetor.

p` = T(p); 

onde p` é o ponto T e transformado(p) é a função de transformação.

Dado que não usamos uma matriz que precisamos fazer isso para combinar várias transformações:

P1 = T(p);

pfinal = M(p1);

Não só uma matriz pode combinar vários tipos de transformações em uma única matriz (por exemplo. afim, linear, projetiva).

Usando uma matriz nos dá a oportunidade de combinar cadeias de transformações e, em seguida, lote multiplicá-los. Isso nos poupa uma tonelada de ciclos normalmente pela GPU (graças a @ChristianRau para apontando-o para fora).

Tfinal = T * R * P; // traduzirrotateprojeto

pfinal = Tfinal*p;

Também é bom ressaltar que GPUs e até mesmo alguns CPUs são otimizados para operações vetoriais; CPUs usando GPUs SIMD e sendo dados orientada por processadores paralelos de criação, portanto, usando matrizes se encaixa perfeitamente com a aceleração de hardware (na realidade, GPUs foram concebidas para operações de ajuste de matriz / vetor).


CRÉDITO:

https://gamedev.stackexchange.com/questions/72044/why-do-we-use-4×4-matrizes-to-transformam-coisas-em-3d?answertab = ativo # guia-top

Deixe uma resposta