Che cosa fa glLoadIdentity () in OpenGL?



Answers

La matrice di identità è l'equivalente di 1 per numero. Come sai, qualsiasi numero che moltiplica con 1 è di per sé (eg A x 1 = A) ,

La stessa cosa vale per la matrice ( MatrixA x IdentityMatrix = MatrixA) .

Quindi caricare una matrice di identità è un modo per inizializzare la matrice allo stato giusto prima di moltiplicare altre matrici nello stack di matrici.

glMatrixMode(GL_PROJECTION) : tratta le matrici utilizzate dalla trasformazione prospettica o dalla trasformazione ortogonale.

glMatrixMode(GL_MODELVIEW) : tratta le matrici utilizzate dalla trasformazione della vista del modello. Cioè, per trasformare il tuo oggetto (cioè il modello) nello spazio delle coordinate della vista (o nello spazio della telecamera).

Question

Sono nuovo di OpenGL e sono un po 'sopraffatto con tutte le funzioni casuali che ho il mio codice. Funzionano e so quando usarli, ma non so perché ho bisogno di loro o di quello che effettivamente fanno.

So che glLoadIdentity() sostituisce la matrice corrente con la matrice di identità, ma cosa fa esattamente? Se ogni programma lo richiede, perché non è la matrice identità per impostazione predefinita, se non diversamente specificato? Non mi piace avere funzioni nel mio codice a meno che non sappia cosa fanno. Devo notare che sto usando OpenGL in esclusiva per i ricchi client 2D, quindi scusami se non si è trattato di qualcosa di molto ovvio per il 3D.

Anche un po 'confuso su glMatrixMode(GL_PROJECTION) VS glMatrixMode(GL_MODELVIEW) .




La matrice di identità viene utilizzata per "inizializzare" una matrice con un predefinito normale.

Una cosa importante da comprendere è che le moltiplicazioni di matrice sono in un certo senso, additive. Ad esempio, se si prende una matrice che inizia con la matrice identità, la moltiplica per una matrice di rotazione, quindi la moltiplica per una matrice di scala, si finisce con una matrice che ruota e ridimensiona le matrici a cui è moltiplicata.






Related