La matrice identità, in termini di matrici di proiezione e modelview, ripristina sostanzialmente la matrice al suo stato predefinito.
Come si spera tu sappia, glTranslatee glRotatesei sempre relativo allo stato attuale della matrice. Ad esempio, se chiami glTranslate, stai traducendo dalla "posizione" corrente della matrice, non dall'origine. Ma se vuoi ricominciare dall'origine, è quando chiami glLoadIdentity(), e quindi puoi glTranslatedalla matrice che ora si trova nell'origine, o glRotatedalla matrice che ora è orientata nella direzione predefinita.
Penso che la risposta di Boon, che è l'equivalente di 1, non sia esattamente corretta. La matrice in realtà si presenta così:
1 0 0 0
0 1 0 0
0 0 1 0
0 0 0 1
Questa è la matrice dell'identità. Boon ha ragione, matematicamente, che qualsiasi matrice moltiplicata con quella matrice (o una matrice che assomiglia a quella; quelle diagonali, tutti gli altri 0) produrrà la matrice originale, ma non credo che abbia spiegato perché questo è importante.
Il motivo per cui questo è importante è perché OpenGL moltiplica tutte le posizioni e le rotazioni attraverso ciascuna matrice; quindi quando ad esempio si disegna un poligono ( glBegin(GL_FACE), alcuni punti glEnd()), lo traduce in "spazio mondiale" moltiplicandolo con MODELVIEW, quindi lo si traduce da 3D a 2D moltiplicandolo con la matrice PROJECT, e questo gli dà i punti 2D sullo schermo, insieme alla profondità (dalla "telecamera" dello schermo), che utilizza per disegnare i pixel. Ma quando una di queste matrici è la matrice identità, i punti vengono moltiplicati per la matrice identità e quindi non vengono modificati, quindi la matrice non ha alcun effetto; non traduce i punti, non li ruota, li lascia così come sono.
Spero che questo chiarisca un po 'di più!