ADC Home > Reference Library > Reference > Mac OS X > Mac OS X Man Pages

 

This document is a Mac OS X manual page. Manual pages are a command-line technology for providing documentation. You can view these manual pages locally using the man(1) command. These manual pages come from many different sources, and thus, have a variety of writing styles.

For more information about the manual page format, see the manual page for manpages(5).



GLTEXGEN(3G)                                                                                    GLTEXGEN(3G)



NAME
       glTexGend,  glTexGenf, glTexGeni, glTexGendv, glTexGenfv, glTexGeniv - control the generation of tex-ture texture
       ture coordinates


C SPECIFICATION
       void glTexGend( GLenum coord,
                       GLenum pname,
                       GLdouble param )
       void glTexGenf( GLenum coord,
                       GLenum pname,
                       GLfloat param )
       void 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 glTexGendv( GLenum coord,
                        GLenum pname,
                        const GLdouble *params )
       void glTexGenfv( GLenum coord,
                        GLenum pname,
                        const GLfloat *params )
       void 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  parame-ters. parameters.
              ters.  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 GL_OBJECT_LINEAR,  GL_EYE_LINEAR,  or  GL_SPHERE_MAP.   If  pname  is  either  GL_OBJECT_PLANE  or
       GL_EYE_PLANE, params contains coefficients for the corresponding texture generation function.

       If the texture generation function is GL_OBJECT_LINEAR, the function


                                           g = p1xo + p2yo + p3zo + p4wo

       is  used,  where g is the value computed for the coordinate named in coord, p1, p2, p3 and p4 are the
       four values supplied in params, and xo, yo, zo, and wo are the  object  coordinates  of  the  vertex.
       This  function  can be used, for example, to texture-map terrain using sea level as a reference plane
       (defined  by  p1,  p2,  p3,  and  p4).   The  altitude  of  a  terrain  vertex  is  computed  by  the
       GL_OBJECT_LINEAR  coordinate  generation  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 = p1'xe + p2'ye + p3'ze + p4'we

       is used, where

                                      (p1' p2' p3' p4') = (p1 p2 p3 p4) M^-1

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

       Note that the values in params define a reference plane in eye  coordinates.   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  contour  lines  on
       moving objects.

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


                                                 f = (fx fy fz)^T

       be the reflection vector such that

                                                f = u - 2 n' n'^T u

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

                                                s = (fx/m) + (1/2)

                                                t = (fy/m) + (1/2)

       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 ver-tices vertices
       tices take the specified 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,
       0, 0).

       When  the  GL_ARB_multitexture extension is supported, glTexGen set the texture generation parameters
       for the currently active texture unit, selected with glActiveTextureARB.

ERRORS
       GL_INVALID_ENUM is generated when coord or pname is not an accepted defined value, or when  pname  is
       GL_TEXTURE_GEN_MODE and params is not an accepted defined value.

       GL_INVALID_ENUM is generated when pname is GL_TEXTURE_GEN_MODE, params is GL_SPHERE_MAP, and coord is
       either GL_R or GL_Q.

       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(3G),   glCopyPixels(3G),   glCopyTexImage2D(3G),   glCopyTexSubImage1D(3G),   glCopyTexSubImage2D(3G),
       glCopyTexSubImage3D(3G),   glTexEnv(3G),   glTexImage1D(3G),    glTexImage2D(3G),    glTexImage3D(3G),    glTexParameter(3G),
       glTexSubImage1D(3G), glTexSubImage2D(3G), glTexSubImage3D(3G)




                                                                                                GLTEXGEN(3G)

Did this document help you?
Yes: Tell us what works for you.
It’s good, but: Report typos, inaccuracies, and so forth.
It wasn’t helpful: Tell us what would have helped.