GLdouble eyeY, GLdouble eyeZ, GLdouble centerX, GLdouble centerY, GLdouble centerZ, GLdouble upX, GLdouble upY, GLdouble upZ )
F ~=~ left ( down 20 { ~ matrix {
ccol {"centerX" above "centerY" above "centerZ"}
ccol { ~-~ above ~-~ above ~-~}
ccol {"eyeX" above "eyeY" above "eyeZ"}
} } ~~ right )
とし、
UP をベクトル $("upX", "upY", "upZ")$ とする。 この場合、正規化は次のようになされる: f ~=~ F over {|| F ||} UP sup prime ~=~ UP over {|| UP ||}
最後に、$s ~=~ f ~times~ UP sup prime$, $u ~=~ s ~times~ f$ とする。
すると M は次のように組み立てられる:
M ~=~ left ( matrix {
ccol { ~s[0] above ~u[0] above -f[0] above 0 }
ccol { ~s[1] above ~u[1] above -f[1] above 0 }
ccol { ~s[2] above ~u[2] above -f[2] above 0 }
ccol { 0 above 0 above 0 above 1 }
} ~~right )
また、gluLookAt は
glMultMatrixf(M);
glTranslated (-eyex, -eyey, -eyez);
と等価である。