glTexGenfv, fonction

Contrôle la génération des coordonnées de texture.

Syntaxe

void WINAPI glTexGenfv(
         GLenum  coord,
         GLenum  pname,
   const GLfloat *params
);

Paramètres

coord

Coordonnée de texture. Doit être l’un des éléments suivants : GL_S, GL_T, GL_R ou GL_Q.

pname

Nom symbolique de la fonction de génération de coordonnées de texture.

params

Tableau de floats qui contient les coefficients de la fonction de génération de texture correspondante.

GLfloat zPlane[] = { 0.0f, 0.0f, 1.0f, 0.0f };

Valeur renvoyée

Cette fonction ne retourne pas de valeur.

Codes d’erreur

Les codes d’erreur suivants peuvent être récupérés par la fonction glGetError .

Nom Signification
GL_INVALID_ENUM
coord ou pname n’était pas une valeur définie acceptée, ou pname était GL_TEXTURE_GEN_MODE et les paramètres n’étaient pas une valeur définie acceptée.
GL_INVALID_OPERATION
La fonction a été appelée entre un appel à glBegin et l’appel correspondant à glEnd.

Notes

La fonction glTexGen sélectionne une fonction de génération de coordonnées de texture ou fournit des coefficients pour l’une des fonctions. Le paramètre coord nomme l’une des coordonnées de texture (s,t,r,q), et il doit s’agir de l’un de ces symboles : GL_S, GL_T, GL_R ou GL_Q. Le paramètre pname doit être l’une des trois constantes symboliques : GL_TEXTURE_GEN_MODE, GL_OBJECT_PLANE ou GL_EYE_PLANE. Si pname est GL_OBJECT_PLANE ou GL_EYE_PLANE, l’analyseur contient des coefficients pour la fonction de génération de texture correspondante.

Si la fonction de génération de texture est GL_OBJECT_LINEAR, la fonction

! [Équation montrant la fonction glTexGen lorsque la fonction de génération de texture est GL_OBJECT_LINEAR.]

est utilisé, où g est la valeur calculée pour la coordonnée nommée dans le coord ; p1, p2, p3 et p4 sont les quatre valeurs fournies dans les paramètres ; et x?, y?, z?, et w? sont les coordonnées d’objet du vertex. Vous pouvez utiliser cette fonction pour texturer le terrain à l’aide du niveau de la mer comme plan de référence (défini par p1, p2, p3 et p4). La fonction de génération de coordonnées GL_OBJECT_LINEAR calcule l’altitude d’un vertex de terrain comme distance par rapport au niveau de la mer; cette altitude est utilisée pour indexer l’image de texture pour mapper la neige blanche sur les pics et l’herbe verte sur les collines, par exemple.

Si la fonction de génération de texture est GL_EYE_LINEAR, la fonction

! [Équation montrant la fonction glTexGen lorsque la fonction de génération de texture est GL_EYE_LINEAR.]

est utilisé, où

Equation showing the eye coordinates of the vertex.

et x?, y?, z?, et w? sont les coordonnées oculaires du vertex, p1, p2, p3 et p4 sont les valeurs fournies dans l’analyseur, et M est la matrice modelview lorsque vous appelez glTexGen. Si M est mal conditionné ou singulier, les coordonnées de texture générées par la fonction résultante peuvent être inexactes ou non définies.

Notez que les valeurs de param définissent un plan de référence en coordonnées oculaires. La matrice modelview qui leur est appliquée peut ne pas être la même en vigueur lorsque les sommets de polygones sont transformés. Cette fonction établit un champ de coordonnées de texture qui peut produire des lignes de contour dynamique sur des objets mobiles.

Si pname est GL_SPHERE_MAP et que le coord est GL_S ou GL_T, les coordonnées de texture s et t sont générées comme suit. Laissez u être le vecteur d’unité pointant de l’origine vers le sommet de polygone (en coordonnées oculaires). Laissez n être la normale actuelle, après la transformation en coordonnées oculaires. Let f = (fx ( ) fy ( ) fz)T être le vecteur de réflexion tel que

Equation showing the reflection vector as a function of unit vector and current normal.

Enfin, laissez

Equation showing m as a function of reflection vector.

Ensuite, les valeurs affectées aux coordonnées de texture i et t sont

Equation showing values assigned to the i and t texture coordinates.

Vous pouvez activer ou désactiver une fonction de génération de coordonnées de texture à l’aide de glEnable ou glDisable avec l’un des noms de coordonnées de texture symboliques (GL_TEXTURE_GEN_S, GL_TEXTURE_GEN_T, GL_TEXTURE_GEN_R ou GL_TEXTURE_GEN_Q) comme argument. Lorsque cette fonction est activée, la coordonnée de texture spécifiée est calculée en fonction de la fonction de génération associée à cette coordonnée. Lorsque cette fonction est désactivée, les vertex suivants prennent la coordonnée de texture spécifiée à partir de l’ensemble actuel de coordonnées de texture. Initialement, toutes les fonctions de génération de texture sont définies sur GL_EYE_LINEAR et sont désactivées. Les deux équations de plan sont (1,0,0,0); les deux équations de plan t sont (0,1,0,0); et toutes les équations r et q plane sont (0,0,0,0,0).

Les fonctions suivantes récupèrent des informations relatives à glTexGen :

glGetTexGen
glIsEnabled avec l’argument GL_TEXTURE_GEN_S
glIsEnabled avec l’argument GL_TEXTURE_GEN_T
glIsEnabled avec l’argument GL_TEXTURE_GEN_R
glIsEnabled avec l’argument GL_TEXTURE_GEN_Q

Configuration requise

Condition requise Valeur
Client minimal pris en charge
Windows 2000 Professionnel [applications de bureau uniquement]
Serveur minimal pris en charge
Windows 2000 Server [applications de bureau uniquement]
En-tête
Gl.h
Bibliothèque
Opengl32.lib
DLL
Opengl32.dll

Voir aussi

glBegin

glEnd

glCopyTexImage2D

glCopyTexSubImage2D

glGetTexGen

glIsEnabled

glTexEnv

glTexImage1D

glTexParameter

glTexSubImage1D

glTexSubImage2D