void GLAPIENTRY glTexGend( GLenum coord,
                                  GLenum pname,
                                  GLdouble param )
       void GLAPIENTRY glTexGenf( GLenum coord,
                                  GLenum pname,
                                  GLfloat param )
       void GLAPIENTRY glTexGeni( GLenum coord,
                                  GLenum pname,
                                  GLint param )

PARAMETERS
       coord   Specifies a texture coordinate.  Must  be  one  of  GL_S,  GL_T,
               GL_R, or GL_Q.

       pname   Specifies the symbolic name of the texture-coordinate generation
               function.  Must be GL_TEXTURE_GEN_MODE.

       param   Specifies a single-valued texture generation parameter,  one  of
               GL_OBJECT_LINEAR, GL_EYE_LINEAR, or GL_SPHERE_MAP.

C SPECIFICATION
       void GLAPIENTRY glTexGendv( GLenum coord,
                                   GLenum pname,
                                   const GLdouble *params )
       void GLAPIENTRY glTexGenfv( GLenum coord,
                                   GLenum pname,
                                   const GLfloat *params )
       void GLAPIENTRY glTexGeniv( GLenum coord,
                                   GLenum pname,
                                   const GLint *params )

PARAMETERS
       coord  Specifies a texture coordinate.  Must be one of GL_S, GL_T, GL_R,
              or GL_Q.

       pname  Specifies the symbolic name of the texture-coordinate  generation
              function  or  function  parameters.  Must be GL_TEXTURE_GEN_MODE,
              GL_OBJECT_PLANE, or GL_EYE_PLANE.

       params Specifies a pointer to an array of texture generation parameters.
              If  pname  is  GL_TEXTURE_GEN_MODE, then the array must contain a
              single symbolic constant, one of GL_OBJECT_LINEAR, GL_EYE_LINEAR,
              or  GL_SPHERE_MAP.   Otherwise, params holds the coefficients for
              the texture-coordinate generation function specified by pname.

DESCRIPTION
       glTexGen selects a texture-coordinate generation  function  or  supplies
       coefficients for one of the functions.  coord names one of the (s, t, r,
       q) texture coordinates; it must be one of the symbols GL_S, GL_T,  GL_R,
       or   GL_Q.    pname   must   be   one   of   three  symbolic  constants:
       GL_TEXTURE_GEN_MODE, GL_OBJECT_PLANE,  or  GL_EYE_PLANE.   If  pname  is
       GL_TEXTURE_GEN_MODE,    then    params    chooses   a   mode,   one   of
       function as its distance from sea level; that altitude can then be  used
       to  index the texture image to map white snow onto peaks and green grass
       onto foothills.

       If the texture generation function is GL_EYE_LINEAR, the function

                                g=p1xe+p2ye+p3ze+p4we

       is used, where

                               (p1p2p3p4)=(p1p2p3p4)M−1

       and xe, ye, ze, and we are the eye coordinates of the  vertex,  p1,  p2,
       p3, and p4 are the values supplied in params, and M is the modelview ma‐
       trix when glTexGen is invoked.  If M is poorly conditioned or  singular,
       texture  coordinates  generated by the resulting function may be inaccu‐
       rate or undefined.

       Note that the values in params define a reference plane in  eye  coordi‐
       nates.  The modelview matrix that is applied to them may not be the same
       one in effect when the polygon vertices are transformed.  This  function
       establishes a field of texture coordinates that can produce dynamic con‐
       tour lines on moving objects.

       If pname is GL_SPHERE_MAP and coord is either GL_S or GL_T, s and t tex‐
       ture  coordinates  are  generated  as follows.  Let u be the unit vector
       pointing from the origin to the polygon  vertex  (in  eye  coordinates).
       Let n sup prime be the current normal, after transformation to eye coor‐
       dinates.  Let

                                     f=(fxfyfz)T
       be the reflection vector such that

                                     f=u−2n′n′Tu

       Finally, let m=2√fx+fy+(fz+1)2.  Then the values assigned to the s and t
       texture coordinates are

                                        s=__+_

                                        t=__+_

       To  enable  or  disable  a  texture-coordinate generation function, call
       glEnable or glDisable with one of the symbolic texture-coordinate  names
       (GL_TEXTURE_GEN_S,      GL_TEXTURE_GEN_T,      GL_TEXTURE_GEN_R,      or
       GL_TEXTURE_GEN_Q) as the argument.  When enabled, the specified  texture
       coordinate  is  computed according to the generating function associated
       with that coordinate.  When disabled, subsequent vertices take the spec‐
       ified  texture  coordinate  from the current set of texture coordinates.
       Initially, all texture generation functions are set to GL_EYE_LINEAR and
       are  disabled.   Both  s  plane equations are (1, 0, 0, 0), both t plane
       equations are (0, 1, 0, 0), and all r and q plane equations are  (0,  0,
       GL_INVALID_OPERATION is generated if glTexGen is  executed  between  the
       execution of glBegin and the corresponding execution of glEnd.

ASSOCIATED GETS
       glGetTexGen
       glIsEnabled with argument GL_TEXTURE_GEN_S
       glIsEnabled with argument GL_TEXTURE_GEN_T
       glIsEnabled with argument GL_TEXTURE_GEN_R
       glIsEnabled with argument GL_TEXTURE_GEN_Q

SEE ALSO
       glActiveTextureARB, glCopyPixels, glCopyTexImage2D, glCopyTexSubImage1D,
       glCopyTexSubImage2D,   glCopyTexSubImage3D,   glTexEnv,    glTexImage1D,
       glTexImage2D,     glTexImage3D,     glTexParameter,     glTexSubImage1D,
       glTexSubImage2D, glTexSubImage3D

                                                                   GLTEXGEN(3G)

Man(1) output converted with man2html