funzione glLightfv

La funzione glLightfv restituisce i valori dei parametri di origine luce.

Sintassi

void WINAPI glLightfv(
         GLenum  light,
         GLenum  pname,
   const GLfloat *params
);

Parametri

light

Identificatore di una luce. Il numero di luci possibili dipende dall'implementazione, ma sono supportate almeno otto luci. Sono identificati dai nomi simbolici del modulo GL_LIGHTi dove i è un valore: da 0 a GL_MAX_LIGHTS - 1.

Pname

Parametro della sorgente di luce per la luce. Vengono accettati i nomi simbolici seguenti.

Valore Significato
GL_AMBIENT
Il parametro params contiene quattro valori a virgola mobile che specificano l'intensità RGBA ambientale della luce. I valori a virgola mobile vengono mappati direttamente. I valori integer e a virgola mobile non sono bloccati. L'intensità di luce ambientale predefinita è (0,0, 0,0, 0,0, 1,0).
GL_DIFFUSE
Il parametro params contiene quattro valori a virgola mobile che specificano l'intensità RGBA diffusa della luce. I valori a virgola mobile vengono mappati direttamente. I valori integer e a virgola mobile non sono bloccati. L'intensità diffusa predefinita è (0,0, 0,0, 0,0, 1,0) per tutte le luci diverse da zero chiaro. L'intensità diffusa predefinita dello zero chiaro è (1,0, 1,0, 1,0, 1,0).
GL_SPECULAR
Il parametro params contiene quattro valori a virgola mobile che specificano l'intensità RGBA speculare della luce. I valori a virgola mobile vengono mappati direttamente. I valori integer e a virgola mobile non sono bloccati. L'intensità speculare predefinita è (0,0, 0,0, 0,0, 1,0) per tutte le luci diverse da zero chiaro. L'intensità speculare predefinita dello zero chiaro è (1,0, 1,0, 1,0, 1,0).
GL_POSITION
Il parametro params contiene quattro valori a virgola mobile che specificano la posizione della luce nelle coordinate omogenee dell'oggetto. I valori integer e a virgola mobile vengono mappati direttamente. I valori integer e a virgola mobile non sono bloccati.
La posizione viene trasformata dalla matrice modelview quando viene chiamato glLightfv (esattamente come se fosse un punto) e viene archiviata nelle coordinate degli occhi. Se il componente w della posizione è 0,0, la luce viene considerata come fonte direzionale. I calcoli di illuminazione diffusa e speculare prendono la direzione della luce, ma non la sua posizione effettiva, in considerazione e l'attenuazione è disabilitata. In caso contrario, i calcoli di illuminazione diffusa e speculare si basano sulla posizione effettiva della luce nelle coordinate degli occhi e l'attenuazione è abilitata. La posizione predefinita è (0,0,1,0); pertanto, la sorgente di luce predefinita è direzionale, parallela a e nella direzione dell'asse -z .
GL_SPOT_DIRECTION
Il parametro params contiene tre valori a virgola mobile che specificano la direzione della luce nelle coordinate omogenee dell'oggetto. I valori integer e a virgola mobile vengono mappati direttamente. I valori integer e a virgola mobile non sono bloccati.
La direzione spot viene trasformata dall'inverso della matrice modelview quando viene chiamato glLightfv (come se fosse normale) e viene archiviato nelle coordinate degli occhi. È significativo solo quando GL_SPOT_CUTOFF non è 180, che è per impostazione predefinita. La direzione predefinita è (0,0,1).
GL_SPOT_EXPONENT
Il parametro params è un singolo valore a virgola mobile che specifica la distribuzione dell'intensità della luce. I valori integer e a virgola mobile vengono mappati direttamente. Vengono accettati solo i valori nell'intervallo [0, 128].
L'intensità effettiva della luce viene attenuata dal coseno dell'angolo tra la direzione della luce e la direzione dalla luce al vertice che viene illuminata, alzata alla potenza dell'esponente spot. Di conseguenza, gli esponenti spot più alti generano una sorgente di luce più evidenziata, indipendentemente dall'angolo di taglio spot. L'esponente spot predefinito è 0, con conseguente distribuzione uniforme della luce.
GL_SPOT_CUTOFF
Il parametro params è un singolo valore a virgola mobile che specifica l'angolo di diffusione massimo di una sorgente di luce. I valori integer e a virgola mobile vengono mappati direttamente. Vengono accettati solo i valori nell'intervallo [0, 90], e il valore speciale 180.
Se l'angolo tra la direzione della luce e la direzione dalla luce al vertice illuminato è maggiore dell'angolo di taglio spot, la luce viene completamente mascherata. In caso contrario, la sua intensità è controllata dall'esponente spot e dai fattori di attenuazione. Il cutoff spot predefinito è 180, con conseguente distribuzione uniforme della luce.
GL_CONSTANT_ATTENUATION, GL_LINEAR_ATTENUATION, GL_QUADRATIC_ATTENUATION
Il parametro params è un singolo valore a virgola mobile che specifica uno dei tre fattori di attenuazione della luce. I valori integer e a virgola mobile vengono mappati direttamente. Vengono accettati solo valori non negativi.
Se la luce è posizionale, anziché direzionale, la sua intensità viene attenuata dal reciproco della somma di: il fattore costante, il fattore lineare moltiplicato per la distanza tra la luce e il vertice che viene illuminato e il fattore quadratico moltiplicato per il quadrato della stessa distanza. I fattori di attenuazione predefiniti sono (1.0.0), con conseguente assenza di attenuazione.

params

Specifica il valore su cui verrà impostato il parametro pname della luce della sorgente luminosa.

Valore restituito

Questa funzione non restituisce un valore.

Codici di errore

I codici di errore seguenti possono essere recuperati dalla funzione glGetError .

Nome Significato
GL_INVALID_ENUM
light o pname non è un valore accettato.
GL_INVALID_VALUE
Un valore esponente spot è stato specificato al di fuori dell'intervallo [0, 128]o è stato specificato un cutoff spot al di fuori dell'intervallo [0, 90] (ad eccezione del valore speciale 180) o è stato specificato un fattore di attenuazione negativo.
GL_INVALID_OPERATION
La funzione è stata chiamata tra una chiamata a glBegin e la chiamata corrispondente a glEnd.

Commenti

La funzione glLightfv imposta il valore o i valori dei singoli parametri della sorgente luminosa. Il parametro light denomina la luce ed è un nome simbolico del formato GL_LIGHTi, dove 0 = i< GL_MAX_LIGHTS.

Il parametro pname specifica uno dei parametri della sorgente di luce, anche in base al nome simbolico. Il parametro params è un singolo valore o un puntatore a una matrice che contiene i nuovi valori.

Il calcolo dell'illuminazione è abilitato e disabilitato usando glEnable e glDisable con l'argomento GL_LIGHTING. Quando l'illuminazione è abilitata, le sorgenti di luce abilitate contribuiscono al calcolo dell'illuminazione. La sorgente luminosa i è abilitata e disabilitata usando glEnable e glDisable con l'argomento GL_LIGHTi.

È sempre il caso che GL_LIGHTi = GL_LIGHT0 + i.

Le funzioni seguenti recuperano informazioni correlate alla funzione glLightfv :

glGetLight

glIsEnabled con argomento GL_LIGHTING

Requisiti

Requisito Valore
Client minimo supportato
Windows 2000 Professional [solo app desktop]
Server minimo supportato
Windows 2000 Server [solo app desktop]
Intestazione
Gl.h
Libreria
Opengl32.lib
DLL
Opengl32.dll

Vedi anche

glBegin

glColorMaterial

glEnd

glLightModel

glMaterial