Partager via


fonction glTexGenfv

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 params n’était 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, param 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 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 sommet. Vous pouvez utiliser cette fonction pour mapper le terrain en utilisant le 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 sommet de terrain comme distance du 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 contreforts, 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ù

Équation montrant les coordonnées oculaires du sommet.

et x?, y?, z?, et w? sont les coordonnées oculaires du vertex, p1, p2, p3 et p4 sont les valeurs fournies dans param, 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 dynamiques sur des objets en mouvement.

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

Équation montrant le vecteur de réflexion en tant que fonction du vecteur unitaire et de la normale actuelle.

Enfin, laissez

Équation montrant m en tant que fonction du vecteur de réflexion.

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

Équation montrant les valeurs affectées aux coordonnées de texture i et t.

Vous pouvez activer ou désactiver une fonction de génération de coordonnées de texture en utilisant glEnable ou glDisable avec l’un des noms symboliques de coordonnées de texture (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 sommets suivants prennent la coordonnée de texture spécifiée 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 de plan r et q sont (0,0,0,0).

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

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

Spécifications

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