2012-11-25 12 views
8

Come funziona matrix.setlookatm? Ho cercato dappertutto e non riesco a trovare una spiegazione. Capisco che le prime tre coordinate servono a definire la posizione della telecamera nello spazio del mondo, e considero che "centro di vista" indica la coordinata x, y, z che sto guardando nello spazio del mondo. Stando così le cose, che cosa significa "fare il vettore"?Come funziona matrix.setlookatm?

Se c'è una domanda precedente o un tutorial che ho trascurato, sarei felice di accettarlo.

risposta

15

Il vettore in alto è ciò che la fotocamera considera "in alto", vale a dire: se stavate guardando in avanti e avete alzato la mano, questo è il vostro vettore "su". Basta impostarlo su 0,1,0. Non sono uno sviluppatore Android, ma suppongo che sia simile a gluLookAt().

Ciò che la funzione sta realmente facendo è impostare una matrice di visualizzazione per te. Ha bisogno della posizione dell'occhio per stabilire dove sarà la fotocamera. Dopodiché sottrarrà la posizione dell'occhio dal centro e la normalizzerà per ottenere un vettore in avanti. Quindi attraverserà il vettore in avanti con il vettore in alto per ottenere un vettore corretto. Dopo aver normalizzato tutti e tre, può costruire una matrice da quei vettori x, y, z che forniscono una matrice di visualizzazione del modello di base.

Semplicemente discretizza la matematica per te.

+0

Ah capisco, non mi è passato per la testa, ma suppongo che la videocamera potrebbe essere capovolta o di lato o cosa hai, e il vettore in su determina quello. Ha perfettamente senso, grazie mille per averlo spiegato. :) – xtraorange