glLightfv, fonction

La fonction glLightfv retourne des valeurs de paramètres de source de lumière.

Syntaxe

void WINAPI glLightfv(
         GLenum  light,
         GLenum  pname,
   const GLfloat *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 à virgule flottante qui spécifient l’intensité AMBIANTE RVBA de la lumière. Les valeurs à virgule flottante sont mappées directement. Ni les valeurs entières ni à virgule flottante ne sont limité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 à virgule flottante qui spécifient l’intensité RVBA diffuse de la lumière. Les valeurs à virgule flottante sont mappées directement. Ni les valeurs entières ni à virgule flottante ne sont limitées. L’intensité diffuse par défaut est (0,0, 0,0, 0,0, 1,0) pour tous les voyants autres que zéro clair. L’intensité diffuse par défaut de zéro est (1.0, 1.0, 1.0, 1.0).
GL_SPECULAR
Le paramètre params contient quatre valeurs à virgule flottante qui spécifient l’intensité spéculaire RVBA de la lumière. Les valeurs à virgule flottante sont mappées directement. Ni les valeurs entières ni à virgule flottante ne sont limitées. L’intensité spéculaire par défaut est (0,0, 0,0, 0,0, 1,0) pour tous les voyants autres que zéro clair. L’intensité spéculaire par défaut de la lumière zéro est (1.0, 1.0, 1.0, 1.0).
GL_POSITION
Le paramètre params contient quatre valeurs à virgule flottante qui spécifient la position de la lumière dans des 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 limitées.
La position est transformée par la matrice modelview lorsque glLightfv 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éculaire 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) ; ainsi, 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 à virgule flottante qui spécifient la direction de la lumière en 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 limitées.
La direction spot est transformée par l’inverse de la matrice modelview lorsque glLightfv est appelé (comme s’il s’agissait d’une 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 à virgule flottante 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 spot plus élevés entraînent une source de lumière plus concentré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 à virgule flottante 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 entre la lumière et le sommet en cours d’éclairage est supérieur à l’angle de coupure, 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. Le seuil par défaut est de 180, ce qui entraîne une distribution uniforme de la lumière.
GL_CONSTANT_ATTENUATION, GL_LINEAR_ATTENUATION GL_QUADRATIC_ATTENUATION
Le paramètre params est une valeur à virgule flottante 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 source de lumière sera défini sur.

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 correspondant à glEnd.

Notes

La fonction glLightfv 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, à nouveau par nom symbolique. Le paramètre params est une valeur unique ou un pointeur vers un tableau qui contient les nouvelles valeurs.

Le calcul de l’éclairage est activé et désactivé à l’aide de glEnable et glDisable avec GL_LIGHTING d’arguments. Lorsque l’éclairage est activé, les sources d’éclairage 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 le cas que GL_LIGHTi = GL_LIGHT0 + i.

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

glGetLight

glIsEnabled avec GL_LIGHTING d’arguments

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