2016-06-02 18 views
7

In caso di problemi relativi alla moltiplicazione della matrice. Quali sono le informazioni memorizzate nella quarta riga di una View Projection Matrix? Ho pensato che la rotazione e il ridimensionamento informazioni sono memorizzate nel Matrix 3x3 superiore, la traduzione quindi nella quarta colonna con l'ultimo elemento impostato a 1. Im che lotta perché io ottenere i seguenti risultati per il mio VP Matrix:Quarta riga di VP Matrix

Quando si applica nessuna rotazione e nessuna traduzione (noti tutti i valori sono arrotondati):

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

Applicazione traduzione da -100:

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

Traduzione di -100, quindi ruotare di 30 ° su asse x positivo, dopo s ruotare di 180 ° in positivo asse 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 

Esso non guardare a destra per me. La parte divertente: funziona. Allora, qual è l'informazione di questa linea?

0 -0.5 0.8 50 

Grazie per l'aiuto!

risposta

0

Per me, la matrice è un po 'strana. Normalmente, la quarta riga dovrebbe contenere il quarto componente del frame di coordinate omogeneo, ovvero qualcosa come [x,y,z]/w che dovrebbe essere aggiunto a 1 attraverso la riga per la trasformazione affine. Immagino che la tua matrice funzioni perché i numeri dispari nella tua quarta riga sono presi in considerazione nella parte superiore della matrice 3x3. Hai provato a modificare l'ordine di concatenazione della matrice, ad esempio M'=M1*M0 rispetto a M'=M0*M1. Un'ottima spiegazione delle coordinate omogenee è data da Jim Blinn nei suoi Dirty Pixels e articoli.

Also, this website contains a good walkthrough regarding homogeneous transforms