2016-06-02 30 views
7

Jeśli mają Państwo pytania dotyczące mnożenia macierzy. Jakie informacje są przechowywane w czwartym wierszu widoku? Myślałem obracanie i skalowanie informacja jest przechowywana w górnej 3x3 Matrix, tłumaczenie następnie w czwartej kolumnie z ostatniego elementu ustawionym na 1. Im walczy bo ja się następujące wyniki dla mojego VP matrix:Czwarty rząd macierzy VP

Przy stosowaniu nie rotację a nie tłumaczenie (zauważ, wszystkie wartości są zaokrąglane):

0.34 0 0 0 
0 0.61 0 0 
0 0 -1 -0.2 
0 0 -1 0 

Stosując tłumaczenie przez -100:

0.34 0 0 0 
0 0.61 0 -61.73 
0 0 -1 -0.2 
0 0 -1 0 

Translation by -100, a następnie obrócić o 30 ° na dodatniej osi X, potem s obróć o 180 ° na dodatniej osi Y:

-0.34 0 -3 0 
0 0.53 0.3 -53.46 
0 -0.5 0.86 49.8 
0 -0.5 0.8 50 

Nie wygląda mi to na rękę. Zabawna część: Działa. Więc jaka jest informacja z tej linii?

0 -0.5 0.8 50 

Dzięki za pomoc!

Odpowiedz

0

Dla mnie Twoja matryca wygląda trochę dziwnie. Zwykle czwarty wiersz zawierałby czwartą składową jednorodnej ramki współrzędnych, to jest coś w rodzaju [x,y,z]/w, która musiałaby dodać do 1 w rzędzie dla transformacji afinicznej. Domyślam się, że twoja macierz działa, ponieważ liczby nieparzyste w twoim czwartym rzędzie są uwzględniane w górnej części macierzy. Czy próbowałeś zmienić kolejność łączenia macierzy, na przykład M'=M1*M0 vs. M'=M0*M1. Bardzo dobre wytłumaczenie homogenicznych współrzędnych podaje Jim Blinn w swoich Dirty Pixels i artykułach.

Also, this website contains a good walkthrough regarding homogeneous transforms