Dlaczego 4×4 macierze używane do przekształcania rzeczy w 3D?

Pytanie
Rzeczywiście 4×4 macierze są bardzo przydatne do przekształcania rzeczy w 3D! W przypadku translacji możesz dodać wektor.

Powód za użyciem 4×4 macierze do przekształcania rzeczy w 3D

Powód użycia macierzy sprowadza się do posiadania jednolitego sposobu obsługi różnych połączonych transformacji.

Na przykład, obrót odbywa się zwykle za pomocą macierzy, więc aby poradzić sobie z wieloma przekształceniami (obrót/tłumaczenie/skalowanie/projekcja…itp) w sposób jednolity, trzeba je zakodować w matrycy.

Dobrze, bardziej technicznie rzecz biorąc; transformacja polega na odwzorowaniu punktu/wektora na inny punkt/wektor.

p` = T(p); 

gdzie p` jest punktem przekształconym, a T(P) jest funkcją transformacji.

Biorąc pod uwagę, że nie używamy macierzy, musimy to zrobić, aby połączyć wiele przekształceń:

p1 = T(P);

Pfinał = M(p1);

Macierz może nie tylko łączyć wiele typów przekształceń w jedną macierz (np. powinowaty, liniowy, rzutowy).

Korzystanie z macierzy daje nam możliwość łączenia łańcuchów przekształceń, a następnie ich mnożenia wsadowego. Oszczędza to nam mnóstwo cykli zwykle przez GPU (dzięki dla @ChristianRau za wskazanie tego).

Tfinał = T * r * P; // Tłumaczyćobracać sięprojekt

Pfinał = Tfinał*P;

Warto również zauważyć, że procesory graficzne, a nawet niektóre procesory, są zoptymalizowane pod kątem operacji wektorowych; Procesory korzystające z SIMD i GPU będące z założenia procesorami równoległymi opartymi na danych, więc korzystanie z macierzy idealnie pasuje do akceleracji sprzętowej (faktycznie, GPU zostały zaprojektowane tak, aby pasowały do ​​operacji na macierzach/wektorach).


KREDYT:

https://gamedev.stackexchange.com/questions/72044/dlaczego-uzyjemy-4×4-macierze-do-przekształcenia-rzeczy-w-3d?answertab=aktywna#tab-top

Zostaw odpowiedź