summaryrefslogtreecommitdiff
path: root/doc/gl-docs/GLU/lookat.3gl
diff options
context:
space:
mode:
Diffstat (limited to 'doc/gl-docs/GLU/lookat.3gl')
-rw-r--r--doc/gl-docs/GLU/lookat.3gl101
1 files changed, 101 insertions, 0 deletions
diff --git a/doc/gl-docs/GLU/lookat.3gl b/doc/gl-docs/GLU/lookat.3gl
new file mode 100644
index 000000000..e4a10d486
--- /dev/null
+++ b/doc/gl-docs/GLU/lookat.3gl
@@ -0,0 +1,101 @@
+'\" e
+'\"! eqn | mmdoc
+'\"macro stdmacro
+.ds Vn Version 1.2
+.ds Dt 6 March 1997
+.ds Re Release 1.2.0
+.ds Dp May 02 11:53
+.ds Dm 37 lookat.gl
+.ds Xs 1014 4 lookat.gl
+.TH GLULOOKAT 3G
+.SH NAME
+.B "gluLookAt
+\- define a viewing transformation
+
+.SH C SPECIFICATION
+void \f3gluLookAt\fP(
+GLdouble \fIeyeX\fP,
+.nf
+.ta \w'\f3void \fPgluLookAt( 'u
+ GLdouble \fIeyeY\fP,
+ GLdouble \fIeyeZ\fP,
+ GLdouble \fIcenterX\fP,
+ GLdouble \fIcenterY\fP,
+ GLdouble \fIcenterZ\fP,
+ GLdouble \fIupX\fP,
+ GLdouble \fIupY\fP,
+ GLdouble \fIupZ\fP )
+.fi
+
+.EQ
+delim $$
+.EN
+.SH PARAMETERS
+.TP \w'\f2eyeX\fP\ \f2eyeY\fP\ \f2eyeZ\fP\ \ 'u
+\f2eyeX\fP, \f2eyeY\fP, \f2eyeZ\fP
+Specifies the position of the eye point.
+.TP
+\f2centerX\fP, \f2centerY\fP, \f2centerZ\fP
+Specifies the position of the reference point.
+.TP
+\f2upX\fP, \f2upY\fP, \f2upZ\fP
+Specifies the direction of the \f2up\fP vector.
+.SH DESCRIPTION
+\%\f3gluLookAt\fP creates a viewing matrix derived from an eye point, a reference
+point indicating the center of the scene, and an \f2UP\fP vector.
+.P
+The matrix
+maps the reference point to the negative \f2z\fP axis and the
+eye point to the origin.
+When a typical projection matrix is used,
+the center of the scene therefore maps to the center of the viewport.
+Similarly, the direction described by the \f2UP\fP
+vector projected onto the viewing plane is mapped to the positive \f2y\fP
+axis so that it points upward in the viewport.
+The \f2UP\fP vector must not be parallel to the line of sight from the
+eye point to the reference point.
+.P
+Let
+.sp
+.EQ
+F ~=~ left ( down 20 { ~ matrix {
+ ccol {"centerX" above "centerY" above "centerZ"}
+ ccol { ~-~ above ~-~ above ~-~}
+ ccol {"eyeX" above "eyeY" above "eyeZ"}
+} } ~~ right )
+
+.EN
+
+.sp
+Let \f2UP\fP be the vector $("upX", "upY", "upZ")$.
+.P
+Then normalize as follows:
+.EQ
+f ~=~ F over {|| F ||}
+.EN
+.P
+.EQ
+UP sup prime ~=~ UP over {|| UP ||}
+.EN
+.sp
+.P
+Finally, let $s ~=~ f ~times~ UP sup prime$, and $u ~=~ s ~times~ f$.
+.P
+.sp
+M is then constructed as follows:
+.EQ
+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 )
+.EN
+.P
+and \%\f3gluLookAt\fP is equivalent to
+.Ex
+glMultMatrixf(M);
+glTranslated (-eyex, -eyey, -eyez);
+.Ee
+.SH SEE ALSO
+\f3glFrustum(3G)\fP, \%\f3gluPerspective(3G)\fP