X-Git-Url: http://git.hcoop.net/clinton/guile-figl.git/blobdiff_plain/b002944dd992dc5a273e0067504beb48e1ae3d1c..a6a00658f26c164551287799b194cc2f07eb78be:/upstream-doc/man2/xhtml/glTexGen.xml diff --git a/upstream-doc/man2/xhtml/glTexGen.xml b/upstream-doc/man2/xhtml/glTexGen.xml new file mode 100644 index 0000000..aa61a00 --- /dev/null +++ b/upstream-doc/man2/xhtml/glTexGen.xml @@ -0,0 +1,636 @@ + + + +glTexGen

Name

glTexGen — control the generation of texture coordinates

C Specification

void glTexGeni(GLenum  coord,
 GLenum  pname,
 GLint  param);
void glTexGenf(GLenum  coord,
 GLenum  pname,
 GLfloat  param);
void glTexGend(GLenum  coord,
 GLenum  pname,
 GLdouble  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, GL_SPHERE_MAP, + GL_NORMAL_MAP, or GL_REFLECTION_MAP. +

C Specification

void glTexGeniv(GLenum  coord,
 GLenum  pname,
 const GLint *  params);
void glTexGenfv(GLenum  coord,
 GLenum  pname,
 const GLfloat *  params);
void glTexGendv(GLenum  coord,
 GLenum  pname,
 const GLdouble *  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, + GL_SPHERE_MAP, + GL_NORMAL_MAP, or + GL_REFLECTION_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, + GL_SPHERE_MAP, + GL_NORMAL_MAP, or + GL_REFLECTION_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 + + + ″ + + × + x + e + + + + + + + p + 2 + + + ″ + + × + y + e + + + + + + + p + 3 + + + ″ + + × + z + e + + + + + + + p + 4 + + + ″ + + × + w + e + + + + +

+

+ is used, where +

+

+ + + + + + p + 1 + + + ″ + + ⁢ + + p + 2 + + + ″ + + ⁢ + + p + 3 + + + ″ + + ⁢ + + p + 4 + + + ″ + + + + = + + + + 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 the texture generation function 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 + ″ + + ⁢ + + n + ″ + + + T + + ⁢ + u + + + +

+ Finally, let + + + + m + = + + 2 + ⁢ + + + + + 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 + + m + + + + + 1 + 2 + + + + +

+ + + + t + = + + + f + y + + 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 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 ARB_multitexture extension is supported, glTexGen sets the + texture generation parameters for the currently active texture unit, + selected with glActiveTexture. +

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

+ glActiveTexture, + glCopyPixels, + glCopyTexImage2D, + glCopyTexSubImage1D, + glCopyTexSubImage2D, + glCopyTexSubImage3D, + glTexEnv, + glTexImage1D, + glTexImage2D, + glTexImage3D, + glTexParameter, + glTexSubImage1D, + glTexSubImage2D, + glTexSubImage3D +

Copyright

+ Copyright © 1991-2006 + Silicon Graphics, Inc. This document is licensed under the SGI + Free Software B License. For details, see + http://oss.sgi.com/projects/FreeB/. +