2009-03-27 2 views
8

Mi sono guardato intorno un po 'e non riesco a trovare quello che sto cercando.Ho trovato "formule canoniche", ma qual è il modo migliore per usarle? Devo ridimensionare ogni singolo vertice verso il basso? O c'è un modo migliore?Formula per una matrice di proiezione ortogonale?

una formula sarebbe davvero darmi una mano, ma sono anche alla ricerca di una spiegazione circa gli aerei vicini e lontani z posizione relativa dello spettatore

+0

Si potrebbe ottenere una risposta migliore se si chiede più specificamente - questo è abbastanza generale. Fornisci un esempio di quale sia l'input della formula e quale sia l'output previsto. Questo è nel regno dell'algebra lineare, quindi potrebbe darti più foraggio google. –

risposta

9

Ecco una fonte ragionevole che deriva un orthogonal project matrix:

considerare alcuni punti: in primo luogo, con l'occhio spazio, la fotocamera è posizionato all'origine e guardando direttamente verso il basso Z- asse. E in secondo luogo, di solito vuoi che il tuo campo visivo si estenda ugualmente a sinistra a come a il diritto, e ugualmente lontano sopra l'asse z come sotto. Se questo è il caso, l'asse z passa direttamente attraverso il centro del volume della vista, e quindi tu hai r = -l e t = -b. In altre parole , è possibile dimenticare r, l, t, e b del tutto e definire semplicemente il volume della vista in termini di larghezza e altezza h, insieme ai propri piani di ritaglio f e n . Se rendere tali sostituzioni nella matrice proiezione ortogonale sopra, si ottiene questo piuttosto semplificata versione:

Tutto quanto sopra ti dà una matrice che assomiglia a questo (aggiungi rotazione e traslazione a seconda dei casi, se si gradire la matrice di trasformazione risultante per trattare una posizione e un orientamento arbitrari della videocamera).

A LaTeX rendering of the orthographic projection matrix http://www.codeguru.com/images/article/10123/3dproj20.gif

Problemi correlati