*nix Documentation Project
·  Home
 +   man pages
·  Linux HOWTOs
·  FreeBSD Tips
·  *niX Forums

  man pages->Tru64 Unix man pages -> glTexGendv (3)              
Title
Content
Arch
Section
 

glTexGen(3G)

Contents


NAME    [Toc]    [Back]

       glTexGen,  glTexGend,  glTexGenf,  glTexGeni,  glTexGendv,
       glTexGenfv, glTexGeniv - control the generation of texture
       coordinates

SYNOPSIS    [Toc]    [Back]

       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    [Toc]    [Back]

       Specifies a texture coordinate. Must be one of GL_S, GL_T,
       GL_R, or GL_Q.  Specifies the symbolic name  of  the  texture-coordinate
   generation  function.  Must  be  GL_TEXTURE_GEN_MODE.
  Specifies a single-valued texture  generation
 parameter, one of GL_OBJECT_LINEAR, GL_EYE_LINEAR, or
       GL_SPHERE_MAP.

SYNOPSIS    [Toc]    [Back]

       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    [Toc]    [Back]

       Specifies a texture coordinate. Must be one of GL_S, GL_T,
       GL_R,  or  GL_Q.   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.  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  texturecoordinate
 generation function specified by pname.

DESCRIPTION    [Toc]    [Back]

       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 = p[1]x[o] + p[2]y[o] + p[3]z[o] + p[4]w[o]

       is  used, where g is the value computed for the coordinate
       named in coord, p[1], p[2], p[3], and p[4]  are  the  four
       values  supplied in params, and x[o], y[o], z[o], and w[o]
       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 p[1],  p[2],  p[3],
       and p[4]). 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 = p[1 ]prime x[e]  +  p[2  ]prime  y[e]  +  p[3
       ]prime z[e] + p[4 ]prime w[e]

       g  =  p[1]prime  x[e]  + p[2]prime y[e] + p[3]prime z[e] +
       p[4] prime w[e]

       is used, where

       ( p[1]prime p[2 ]prime P[3] prime p[4  ]prime)  =  (  p[1]
       p[2] p[3] p[4] ) M^-1

       and  x[e], y[e], z[e], and w[e] are the eye coordinates of
       the vertex, p[1], p[2], p[3], and p[4] are the values supplied
 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 coordinates). Let n  sup  prime
       be the current normal, after transformation to eye coordinates.
 Let f = ( f[x]f[y]f[z] )^T

       be the reflection vector such that f =  u - 2  n  prime  n
       prime^T u

       Finally,  let   m = 2 sqrt f[x^2] + f[y^2]+ (f[z] + 1 )^2.
       Then the values assigned to the s and  t  texture  coordinates
 are s = f[x] over m + 1 over 2


       t = f[y] over m + 1 over 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 vertices
 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    [Toc]    [Back]

       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    [Toc]    [Back]

       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    [Toc]    [Back]

      
      
       glActiveTextureARB(3),    glCopyPixels(3),    glCopyTexImage2D(3), glCopyTexSubImage1D(3),  glCopyTexSubImage2D(3),
       glCopyTexSubImage3D(3),    glTexEnv(3),   glTexImage1D(3),
       glTexImage2D(3),  glTexImage3D(3),  ,   glTexParameter(3),
       glTexSubImage1D(3), glTexSubImage2D(3), glTexSubImage3D(3)



                                                     glTexGen(3G)
[ Back ]
 Similar pages
Name OS Title
texgen IRIX specify automatic generation of texture coordinates
glpixeltexgen IRIX affects the generation of texture coordinates from pixel groups
glpixeltexgenparameter IRIX affects the generation of texture coordinates in pixel operations
glGetTexGendfv Tru64 return texture coordinate generation parameters
glGetTexGeniv Tru64 return texture coordinate generation parameters
glGetTexGen Tru64 return texture coordinate generation parameters
glGetTexGendv Tru64 return texture coordinate generation parameters
glgettexgen IRIX return texture coordinate generation parameters
glTexCoord Tru64 set the current texture coordinates
glTexCoord1sv Tru64 set the current texture coordinates
Copyright © 2004-2005 DeniX Solutions SRL
newsletter delivery service