Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
GLTEXGEN()							    GLTEXGEN()

NAME
       glTexGend,  glTexGenf,  glTexGeni, glTexGendv, glTexGenfv, glTexGeniv -
       control the generation of texture 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 )

       delim $$

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 genera-
	       tion 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 parameters.	Must  be  GL_TEXTURE_GEN_MODE,
	      GL_OBJECT_PLANE, or GL_EYE_PLANE.

       params Specifies	 a  pointer  to	an array of texture generation parame-
	      ters.  If	pname is GL_TEXTURE_GEN_MODE, then the array must con-
	      tain  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_TEX-
       TURE_GEN_MODE,  GL_OBJECT_PLANE,	 or GL_EYE_PLANE.  If pname is GL_TEX-
       TURE_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 tex-
       ture generation function.

       If the texture generation function is GL_OBJECT_LINEAR, the function

       $g = p sub 1 x sub o + p	sub 2 y	sub o +	p sub 3	z sub o	+ p  sub  4  w
				       sub o$

       is  used,  where	 $g$ is	the value computed for the coordinate named in
       coord, $p sub 1$, $p sub	2$, $p sub 3$, and $p sub 4$ are the four val-
       ues supplied in params, and $x sub o$, $y sub o$, $z sub	o$, and	$w sub
       o$ are the object coordinates of	the  vertex.   This  function  can  be
       used,  for  example, to texture-map terrain using sea level as a	refer-
       ence plane (defined by $p sub 1$, $p sub	2$, $p sub 3$, and $p sub 4$).
       The altitude of a terrain vertex	is computed  by	 the  GL_OBJECT_LINEAR
       coordinate generation function as its distance from sea level; that al-
       titude  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 sub 1} sup prime	~x sub e + {p sub 2} sup prime ~y sub e	 +  {p
	      sub 3} sup prime ~z sub e	+ {p sub 4} sup	prime ~w sub e$

       is used,	where

			       $( {p sub 1} sup	prime
       ~~{p  sub 2} sup	prime~~{p sub 3} sup prime~~ {{p sub 4}sup prime}) = (
       p sub 1~~ p sub 2~~ p sub 3~~ p sub 4 ) ~M sup -1$

       and $x sub e$, $y sub e$, $z sub	e$, and	$w sub e$ are the eye  coordi-
       nates of	the vertex, $p sub 1$, $p sub 2$, $p sub 3$, and $p sub	4$ are
       the values supplied in params, and $M$ is the modelview matrix when gl-
       TexGen  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 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 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  co-
       ordinates.  Let

		     $f	~=~ ( f	sub x~~f sub y~~f sub z	) sup T$
       be the reflection vector	such that

		  $f ~=~  u ~-~	2 n sup	prime n	sup prime sup T	u$

       Finally,	 let $ m ~=~ 2 sqrt { f	sub x sup {~2} + f sub y sup {~2} + (f
       sub z + 1 ) sup 2}$.  Then the values assigned to the $s$ and $t$  tex-
       ture coordinates	are

			 $s ~=~	f sub x	over m ~+~ 1 over 2$

			 $t ~=~	f sub 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_TEX-
       TURE_GEN_Q) as the argument.  When enabled, the specified texture coor-
       dinate 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. Ini-
       tially, 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).

ERRORS
       GL_INVALID_ENUM is generated when coord or pname	is not an accepted de-
       fined  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
       glCopyPixels,  glCopyTexImage2D,	 glCopyTexSubImage1D,  glCopyTexSubIm-
       age2D,  glTexEnv,  glTexImage1D,	 glTexImage2D,	glTexParameter,	glTex-
       SubImage1D, glTexSubImage2D

								    GLTEXGEN()

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=glTexGendv&sektion=3&manpath=FreeBSD+Ports+15.0.quarterly>

home | help