Partager via


glLightiv, fonction

La fonction glLightiv retourne les valeurs des paramètres de source lumineuse.

Syntaxe

void WINAPI glLightiv(
         GLenum light,
         GLenum pname,
   const GLint  *params
);

Paramètres

light

Identificateur d’une lumière. Le nombre de lumières possibles dépend de l’implémentation, mais au moins huit lumières sont prises en charge. Ils sont identifiés par des noms symboliques de la forme GL_LIGHTii est une valeur : 0 à GL_MAX_LIGHTS - 1.

pname

Paramètre de source de lumière pour la lumière. Les noms symboliques suivants sont acceptés.

Valeur Signification
GL_AMBIENT
Le paramètre params contient quatre valeurs entières qui spécifient l’intensité RVBA ambiante de la lumière. 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é lumineuse ambiante par défaut est (0.0, 0.0, 0.0, 1.0).
GL_DIFFUSE
Le paramètre params contient quatre valeurs entières qui spécifient l’intensité RGBA diffuse de la lumière. 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é diffuse par défaut est (0,0, 0,0, 0,0, 1,0) pour tous les feux autres que zéro clair. L’intensité diffuse par défaut de la lumière zéro est (1.0, 1.0, 1.0, 1.0).
GL_SPECULAR
Le paramètre params contient quatre valeurs entières qui spécifient l’intensité spéculaire RVBA de la lumière. 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é spéculaire par défaut est (0.0, 0.0, 0.0, 1.0) pour tous les feux autres que zéro clair. L’intensité spéculaire par défaut de zéro est (1.0, 1.0, 1.0, 1.0).
GL_POSITION
Le paramètre params contient quatre valeurs entières qui spécifient la position de la lumière dans les coordonnées d’objet homogènes. Les valeurs entières et à virgule flottante sont mappées directement. Ni les valeurs entières ni à virgule flottante ne sont bloquées.
La position est transformée par la matrice modelview lorsque glLightiv est appelé (comme s’il s’agissait d’un point) et qu’il est stocké dans des coordonnées oculaires. Si le composant w de la position est 0,0, la lumière est traitée comme une source directionnelle. Les calculs d’éclairage diffus et spéculaire prennent en compte la direction de la lumière, mais pas sa position réelle, et l’atténuation est désactivée. Sinon, les calculs d’éclairage diffus et spéculaires sont basés sur l’emplacement réel de la lumière dans les coordonnées oculaires, et l’atténuation est activée. La position par défaut est (0,0,1,0) ; par conséquent, la source de lumière par défaut est directionnelle, parallèle à et dans la direction de l’axe -z .
GL_SPOT_DIRECTION
Le paramètre params contient trois valeurs entières qui spécifient la direction de la lumière dans les coordonnées d’objet homogènes. Les valeurs entières et à virgule flottante sont mappées directement. Ni les valeurs entières ni à virgule flottante ne sont bloquées.
La direction spot est transformée par l’inverse de la matrice modelview lorsque glLightiv est appelé (comme s’il s’agissait d’une valeur normale) et qu’il est stocké dans des coordonnées oculaires. Elle n’est significative que lorsque GL_SPOT_CUTOFF n’est pas 180, ce qui est le cas par défaut. La direction par défaut est (0,0,1).
GL_SPOT_EXPONENT
Le paramètre params est une valeur entière unique qui spécifie la distribution d’intensité de la lumière. Les valeurs entières et à virgule flottante sont mappées directement. Seules les valeurs de la plage [0, 128] sont acceptées.
L’intensité lumineuse effective est atténuée par le cosinus de l’angle entre la direction de la lumière et la direction de la lumière vers le sommet allumé, élevé à la puissance de l’exposant spot. Ainsi, les exposants de points plus élevés entraînent une source de lumière plus ciblée, quel que soit l’angle de coupure du spot. L’exposant spot par défaut est 0, ce qui entraîne une distribution uniforme de la lumière.
GL_SPOT_CUTOFF
Le paramètre params est une valeur entière unique qui spécifie l’angle de propagation maximal d’une source de lumière. Les valeurs entières et à virgule flottante sont mappées directement. Seules les valeurs de la plage [0, 90], et la valeur spéciale 180, sont acceptées.
Si l’angle entre la direction de la lumière et la direction de la lumière vers le sommet allumé est supérieur à l’angle de coupure du spot, la lumière est complètement masquée. Sinon, son intensité est contrôlée par l’exposant spot et les facteurs d’atténuation. La limite de point par défaut est 180, ce qui entraîne une répartition uniforme de la lumière.
GL_CONSTANT_ATTENUATION, GL_LINEAR_ATTENUATION, GL_QUADRATIC_ATTENUATION
Le paramètre params est une valeur entière unique qui spécifie l’un des trois facteurs d’atténuation de la lumière. Les valeurs entières et à virgule flottante sont mappées directement. Seules les valeurs non négatives sont acceptées.
Si la lumière est positionnelle, plutôt que directionnelle, son intensité est atténuée par la réciproque de la somme de : le facteur constant, le facteur linéaire multiplié par la distance entre la lumière et le sommet allumé, et le facteur quadratique multiplié par le carré de la même distance. Les facteurs d’atténuation par défaut sont (1,0,0), ce qui n’entraîne aucune atténuation.

params

Spécifie la valeur sur laquelle le paramètre pname de la lumière de la source de lumière 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 .

Nom Signification
GL_INVALID_ENUM
light ou pname n’était pas une valeur acceptée.
GL_INVALID_VALUE
Une valeur d’exposant spot a été spécifiée en dehors de la plage [0, 128], ou un seuil spot a été spécifié en dehors de la plage [0, 90] (à l’exception de la valeur spéciale 180), ou un facteur d’atténuation négatif a été spécifié.
GL_INVALID_OPERATION
La fonction a été appelée entre un appel à glBegin et l’appel à glEnd correspondant.

Notes

La fonction glLightiv définit la ou les valeurs des paramètres de source de lumière individuels. Le paramètre light nomme la lumière et est un nom symbolique de la forme GL_LIGHTi, où 0 = i< GL_MAX_LIGHTS.

Le paramètre pname spécifie l’un des paramètres de la source de lumière, toujours par nom symbolique. Le paramètre params est une valeur unique ou un pointeur vers un tableau qui contient les nouvelles valeurs.

Le calcul d’éclairage est activé et désactivé à l’aide de glEnable et glDisable avec l’argument GL_LIGHTING. Lorsque l’éclairage est activé, les sources lumineuses activées contribuent au calcul de l’éclairage. La source de lumière i est activée et désactivée à l’aide de glEnable et glDisable avec l’argument GL_LIGHTi.

Il est toujours vrai que GL_LIGHTi = GL_LIGHT0 + i.

Les fonctions suivantes récupèrent des informations relatives à la fonction glLightiv :

glGetLight

glIsEnabled avec argument GL_LIGHTING

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

glColorMaterial

glEnd

glLightModel

glMaterial