Grafika komputer 3D
Transformasi Matriks

Grafika komputer 3D menggunakan matriks 4x4 untuk mengubah dan menayangkan model 3D dalam bentuk citra 2D. Grafika komputer 3D memiliki 5 jenis dasar matriks transformasi:
Matriks model (Model matrix): Menyimpan orientasi dan posisi model relatif terhadap suatu posisi.
Matriks pandangan (View matrix): Menyimpan transformasi pandangan relatif terhadap posisi asal (yang bernilai (0,0,0)).
Matriks proyeksi (Projection matrix): Menyimpan transformasi untuk mengubah ruang 3D menjadi citra 2D, dan sebaliknya.
Matriks dunia (World matrix): Menyimpan orientasi dan posisi suatu posisi relatif terhadap posisi asal.
Matriks lokal (Local matrix): Menyimpan orientasi dan posisi suatu posisi relatif terhadap suatu posisi lain.
Saat penayangan citra, kamera pandangan digunakan sebagai kerangka acuan ruang maya. Apabila kamera harus berpindah (translate) sejarak +10 unit di Poros-Z, maka seluruh model di ruang maya harus berpindah -10 di Poros-Z. Jadi, kamera sebenarnya tidak berpindah, melainkan ruang maya yang berpindah. Setiap benda (termasuk kamera) grafika komputer mempunyai matriks model yang menyimpan posisi dan orientasi model. Sementara, kamera juga memiliki matriks pandangan dan proyeksi. Matriks dunia dan matriks lokal tidak wajib diperlukan, dan bisa dianggap bernilai identitas.
Berikut adalah contoh transformasi matriks dengan kode palsu OpenGL:
void Draw(void)
{
    glMatrixMode(GL_PROJECTION);
    glLoadIdentity();
    glViewport(0,0,1024,768);
    gluPerspective(45.0f,(GLFloat)(1024)/(GLFloat)(768),0.125f,1024.0f);       /* Kode viewport di sini, transformasi matriks proyeksi di sini*/
    glMatrixMode(GL_MODELVIEW);
    glLoadIdentity();
   
    gluLookAt   ( 0.0f, 0.0f, 0.0f,   0.0f, 0.0f,-1.0f,   0.0f, 1.0f, 0.0f);   /* Kode kamera, transformasi matriks pandangan */

    glTranslatef(1.0f,2.0f,3.0f);             /* Kode perpindahan, transformasi matriks dunia */

    glPushMatrix();
    {
        glTranslatef(4.0f,5.0f,6.0f);         /* Kode perpindahan, transformasi matriks lokal */
        glPushMatrix();
        {
            glTranslatef(7.0f,8.0f,9.0f);     /* Kode perpindahan, transformasi matriks model */
            DrawModel();                      /* Menggambarkan model nomor 1 */
        }
        glPopMatrix();
        glPushMatrix();
        {
            glTranslatef(7.0f,8.0f,9.0f);     /* Kode perpindahan, transformasi matriks model */
            DrawModel();                      /* Menggambarkan model nomor 2 */
        }
        glPopMatrix();
    }
    glPopMatrix();
    glPushMatrix();
    {
        glTranslatef(10.0f,11.0f,12.0f);      /* Kode perpindahan, transformasi matriks lokal */
        glPushMatrix();
        {
            glTranslatef(13.0f,14.0f,15.0f);  /* Kode perpindahan, transformasi matriks model */
            DrawModel();                      /* Menggambarkan model nomor 3 */
        }
        glPopMatrix();
        glPushMatrix();
        {
            glTranslatef(16.0f,17.0f,18.0f);  /* Kode perpindahan, transformasi matriks model */
            DrawModel();                      /* Menggambarkan model nomor 4 */
        }
        glPopMatrix();
    }
    glPopMatrix();
}
Selain kelima matriks dasar tersebut, juga terdapat matriks-matriks yang merupakan hasil perkalian matriks dasar, contohnya:
Matriks model-pandangan (Model-view matrix)
Matriks model-pandangan-proyeksi (Model-view-projection matrix): Digunakan untuk algoritme perpisahan frustum matriks (Matrix frustum culling).
Matriks dunia-pandangan-proyeksi (World-view-projection matrix): Digunakan di dalam algoritme penayangan citra oleh perangkat lunak shader seperti FX Composer dan RenderMonkey.