Por que é 4×4 matrizes utilizadas para transformar as coisas em 3D?
Razão por trás do uso de 4×4 matrizes para transformar as coisas em 3D
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
Você deve Conecte-se ou registro para adicionar uma nova resposta.