Condividi tramite


funzione glMaterialiv

La funzione glMaterialiv specifica i parametri di materiale per il modello di illuminazione.

Sintassi

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

Parametri

Faccia

Il viso o i visi che vengono aggiornati. Deve essere uno dei seguenti: GL_FRONT, GL_BACK o GL_FRONT e GL_BACK.

Pname

Parametro materiale del viso o dei visi da aggiornare. I parametri che possono essere specificati usando glMaterialiv e le relative interpretazioni dall'equazione di illuminazione sono i seguenti.

Valore Significato
GL_AMBIENT
Il parametro params contiene quattro valori integer che specificano la riflessione RGBA ambientale del materiale. I valori integer vengono mappati in modo lineare in modo che il valore rappresentabile più positivo mappa a 1.0 e il valore rappresentabile più negativo mappa a -1.0. I valori a virgola mobile vengono mappati direttamente. I valori interi o a virgola mobile non vengono bloccati. La riflessione ambientale predefinita per i materiali frontali e posteriore è (0,2, 0,2, 0,2, 0,2, 1,0).
GL_DIFFUSE
Il parametro params contiene quattro valori interi che specificano la riflessione RGBA diffusa del materiale. I valori integer vengono mappati in modo lineare in modo che il valore rappresentabile più positivo mappa a 1.0 e il valore rappresentabile più negativo mappa a -1.0. I valori a virgola mobile vengono mappati direttamente. I valori interi o a virgola mobile non vengono bloccati. La riflessione diffusa predefinita per i materiali frontali e posteriore è (0,8, 0,8, 0,8, 0,8, 1,0).
GL_SPECULAR
Il parametro params contiene quattro valori integer che specificano la riflessione RGBA speculare del materiale. I valori integer vengono mappati in modo lineare in modo che il valore rappresentabile più positivo mappa a 1.0 e il valore rappresentabile più negativo mappa a -1.0. I valori a virgola mobile vengono mappati direttamente. I valori interi o a virgola mobile non vengono bloccati. La riflessione speculare predefinita per i materiali front-front-facing e back-facing è (0,0, 0,0, 0,0, 1,0).
GL_EMISSION
Il parametro params contiene quattro valori interi che specificano l'intensità di luce RGBA generata dal materiale. I valori integer vengono mappati in modo lineare in modo che il valore rappresentabile più positivo mappa a 1.0 e il valore rappresentabile più negativo mappa a -1.0. I valori a virgola mobile vengono mappati direttamente. I valori interi o a virgola mobile non vengono bloccati. L'intensità di emissione predefinita per i materiali frontali e indietro è (0,0, 0,0, 0,0, 1,0, 1,0).
GL_SHININESS
Il parametro param è un singolo intero che specifica l'esponente speculare RGBA del materiale. I valori integer vengono mappati direttamente. Vengono accettati solo valori nell'intervallo [0, 128]. L'esponente speculare predefinito per i materiali frontali e posteriore è 0.
GL_AMBIENT_AND_DIFFUSE
Equivalente a chiamare glMaterial due volte con gli stessi valori di parametro, una volta con GL_AMBIENT e una volta con GL_DIFFUSE.
GL_COLOR_INDEXES
Il parametro params contiene tre valori interi che specificano gli indici di colore per l'illuminazione ambientale, diffusa e speculare. Questi tre valori, e GL_SHININESS, sono gli unici valori materiali usati dall'equazione di illuminazione in modalità indice colore. Fare riferimento a glLightModel per una discussione sull'illuminazione dell'indice di colore.

params

Valore a cui verrà impostato il parametro GL_SHININESS.

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
Face o pname non è stato accettato.
GL_INVALID_VALUE
È stato specificato un esponente speculare all'esterno dell'intervallo di [0, 128].

Commenti

La funzione glMaterialiv assegna valori ai parametri del materiale. Esistono due set corrispondenti di parametri di materiale. Uno, il set anteriore , viene usato per ombreggiaturare punti, linee, bitmap e tutti i poligoni (quando l'illuminazione a due lati è disabilitata) o solo poligoni front-front-front (quando è abilitata l'illuminazione a due lati). L'altro set, di fronte al retro, viene usato per ombreggiaturare poligoni indietro solo quando è abilitata l'illuminazione a due lati. Fare riferimento a glLightModel per informazioni dettagliate sui calcoli di illuminazione a un lato e a due lati.

La funzione glMaterialiv accetta tre argomenti. Il primo, viso, specifica se i materiali GL_FRONT, i materiali GL_BACK o entrambi i materiali GL_FRONT_AND_BACK verranno modificati. Il secondo, pname, specifica quali parametri in uno o entrambi i set verranno modificati. Il terzo parametro, param, specifica il valore assegnato al parametro specificato.

I parametri del materiale vengono usati nell'equazione di illuminazione applicata facoltativamente a ogni vertice. L'equazione viene illustrata in glLightModel.

I parametri del materiale possono essere aggiornati in qualsiasi momento. In particolare, glMaterialiv può essere chiamato tra una chiamata a glBegin e la chiamata corrispondente a glEnd. Se solo un singolo parametro materiale deve essere modificato per vertice, tuttavia, glColorMaterial è preferito rispetto a glMaterialiv.

La funzione seguente recupera informazioni correlate a glMaterialiv:

glGetMaterial

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

glColorMaterial

glLight

glLightModel