funzione glLightiv

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

Sintassi

void WINAPI glLightiv(
         GLenum light,
         GLenum pname,
   const GLint  *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 interi che specificano l'intensità RGBA ambientale della luce. I valori integer vengono mappati in modo lineare in modo che il valore rappresentabile più positivo sia mappato a 1,0 e che il valore rappresentabile più negativo sia mappato a -1,0. 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 interi che specificano l'intensità RGBA diffusa della luce. I valori integer vengono mappati in modo lineare in modo che il valore rappresentabile più positivo sia mappato a 1,0 e che il valore rappresentabile più negativo sia mappato a -1,0. 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 interi che specificano l'intensità RGBA speculare della luce. I valori interi vengono mappati in modo lineare in modo che il valore rappresentabile più positivo sia mappato a 1,0 e che il valore rappresentabile più negativo sia mappato a 1,0. 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 interi 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 glLightiv (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 interi 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 glLightiv viene chiamato (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 intero 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 intero che specifica l'angolo di distribuzione 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 intero 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 glLightiv imposta il valore o i valori dei singoli parametri della sorgente di luce. 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 glLightiv :

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