glMaterialiv, fonction

La fonction glMaterialiv spécifie les paramètres de matériau pour le modèle d’éclairage.

Syntaxe

void WINAPI glMaterialfv(
         GLenum face,
         GLenum pname,
   const GLint  *params
);

Paramètres

Visage

Visage ou visages en cours de mise à jour. Il doit s’agir de l’un des éléments suivants : GL_FRONT, GL_BACK ou GL_FRONT et GL_BACK.

pname

Paramètre material du ou des visages en cours de mise à jour. Les paramètres qui peuvent être spécifiés à l’aide de glMaterialiv et leurs interprétations par l’équation d’éclairage sont les suivants.

Valeur Signification
GL_AMBIENT
Le paramètre params contient quatre valeurs entières qui spécifient la réflectance RVBA ambiante du matériau. Les valeurs entières sont mappées de manière linéaire de telle sorte que la valeur représentable la plus positive est mappée à 1.0 et la valeur représentable la plus négative est mappée à -1.0. Les valeurs à virgule flottante sont mappées directement. Ni les valeurs entières ni à virgule flottante ne sont bloquées. La réflectance ambiante par défaut pour les matériaux à l’avant et à l’arrière est (0.2, 0.2, 0.2, 1.0).
GL_DIFFUSE
Le paramètre params contient quatre valeurs entières qui spécifient la réflectance RGBA diffuse du matériau. Les valeurs entières sont mappées de manière linéaire de telle sorte que la valeur représentable la plus positive est mappée à 1.0 et la valeur représentable la plus négative est mappée à -1.0. Les valeurs à virgule flottante sont mappées directement. Ni les valeurs entières ni à virgule flottante ne sont bloquées. La réflectance diffuse par défaut pour les matériaux à l’avant et à l’arrière est (0,8, 0,8, 0,8, 1,0).
GL_SPECULAR
Le paramètre params contient quatre valeurs entières qui spécifient la réflectance RVBA spéculaire du matériau. Les valeurs entières sont mappées de manière linéaire de telle sorte que la valeur représentable la plus positive est mappée à 1.0 et la valeur représentable la plus négative est mappée à -1.0. Les valeurs à virgule flottante sont mappées directement. Ni les valeurs entières ni à virgule flottante ne sont bloquées. La réflectance spéculaire par défaut pour les matériaux à l’avant et à l’arrière est (0.0, 0.0, 0.0, 1.0).
GL_EMISSION
Le paramètre params contient quatre valeurs entières qui spécifient l’intensité lumineuse émise PAR RVBA du matériau. Les valeurs entières sont mappées de manière linéaire de telle sorte que la valeur représentable la plus positive est mappée à 1.0 et la valeur représentable la plus négative est mappée à -1.0. Les valeurs à virgule flottante sont mappées directement. Ni les valeurs entières ni à virgule flottante ne sont bloquées. L’intensité d’émission par défaut pour les matériaux à l’avant et à l’arrière est (0,0, 0,0, 0,0, 1,0).
GL_SHININESS
Le paramètre param est un entier unique qui spécifie l’exposant spéculaire RGBA du matériau. Les valeurs entières sont mappées directement. Seules les valeurs de la plage [0, 128] sont acceptées. L’exposant spéculaire par défaut pour les matériaux à l’avant et à l’arrière est 0.
GL_AMBIENT_AND_DIFFUSE
Équivaut à appeler glMaterial deux fois avec les mêmes valeurs de paramètre, une fois avec GL_AMBIENT et une fois avec GL_DIFFUSE.
GL_COLOR_INDEXES
Le paramètre params contient trois valeurs entières spécifiant les index de couleur pour l’éclairage ambiant, diffus et spéculaire. Ces trois valeurs, et GL_SHININESS, sont les seules valeurs matérielles utilisées par l’équation d’éclairage en mode color-index. Reportez-vous à glLightModel pour une présentation de l’éclairage d’index de couleur.

params

Valeur à laquelle le paramètre GL_SHININESS sera défini.

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 .

Name Signification
GL_INVALID_ENUM
Face ou pname n’était pas une valeur acceptée.
GL_INVALID_VALUE
Un exposant spéculaire en dehors de la plage de [0, 128] a été spécifié.

Notes

La fonction glMaterialiv affecte des valeurs aux paramètres matériels. Il existe deux ensembles de paramètres matériels correspondants. L’un, l’ensemble avant , est utilisé pour ombrage des points, des lignes, des bitmaps et tous les polygones (lorsque l’éclairage à deux côtés est désactivé), ou simplement les polygones frontaux (lorsque l’éclairage à deux côtés est activé). L’autre ensemble, orienté vers l’arrière, est utilisé pour nuancer les polygones arrière uniquement lorsque l’éclairage recto verso est activé. Pour plus d’informations sur les calculs d’éclairage à un et à deux côtés, reportez-vous à glLightModel .

La fonction glMaterialiv prend trois arguments. Le premier, visage, spécifie si les matériaux GL_FRONT, les matériaux GL_BACK ou les deux matériaux GL_FRONT_AND_BACK seront modifiés. Le deuxième, pname, spécifie lequel des paramètres d’un ou des deux ensembles sera modifié. La troisième, param, spécifie la valeur qui sera affectée au paramètre spécifié.

Les paramètres matériels sont utilisés dans l’équation d’éclairage qui est éventuellement appliquée à chaque sommet. L’équation est abordée dans glLightModel.

Les paramètres de matériau peuvent être mis à jour à tout moment. En particulier, glMaterialiv peut être appelé entre un appel à glBegin et l’appel à glEnd correspondant. Toutefois, si un seul paramètre de matériau doit être modifié par vertex, glColorMaterial est préféré à glMaterialiv.

La fonction suivante récupère les informations relatives à glMaterialiv :

glGetMaterial

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

glColorMaterial

glLight

glLightModel