glMaterialiv-Funktion

Die Funktion glMaterialiv gibt Materialparameter für das Beleuchtungsmodell an.

Syntax

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

Parameter

Gesicht

Das Gesicht oder die Gesichter, die aktualisiert werden. Muss eine der folgenden Sein: GL_FRONT, GL_BACK oder GL_FRONT und GL_BACK.

pname

Der Materialparameter der zu aktualisierenden Gesichter. Die Parameter, die mit glMaterialiv angegeben werden können, und ihre Interpretationen durch die Lichtgleichung sind wie folgt.

Wert Bedeutung
GL_AMBIENT
Der parameter params enthält vier ganzzahlige Werte, die die RGBA-Umgebungsreflektion des Materials angeben. Ganzzahlige Werte werden linear so zugeordnet, dass der positivste darstellbare Wert 1,0 und der negativste darstellbare Wert -1,0 zugeordnet wird. Gleitkommawerte werden direkt zugeordnet. Weder ganzzahlige noch Gleitkommawerte werden geklemmt. Die Standardmäßige Umgebungsreflektion für materialien, die nach vorne und nach hinten gerichtet sind, ist (0.2, 0.2, 0.2, 1.0).
GL_DIFFUSE
Der parameter params enthält vier ganzzahlige Werte, die die diffuse RGBA-Reflektion des Materials angeben. Ganzzahlige Werte werden linear so zugeordnet, dass der positivste darstellbare Wert 1,0 und der negativste darstellbare Wert -1,0 zugeordnet wird. Gleitkommawerte werden direkt zugeordnet. Weder ganzzahlige noch Gleitkommawerte werden geklemmt. Die standardmäßige diffuse Reflektion für nach vorne und nach hinten ausgerichtete Materialien ist (0,8, 0,8, 0,8, 1,0).
GL_SPECULAR
Der params-Parameter enthält vier ganzzahlige Werte, die die spiegelförmige RGBA-Reflektion des Materials angeben. Ganzzahlige Werte werden linear so zugeordnet, dass der positivste darstellbare Wert 1,0 und der negativste darstellbare Wert -1,0 zugeordnet wird. Gleitkommawerte werden direkt zugeordnet. Weder ganzzahlige noch Gleitkommawerte werden geklemmt. Die standardmäßige Spiegelreflexion für nach vorne und nach hinten ausgerichtete Materialien ist (0.0, 0.0, 0.0, 0.0, 1.0).
GL_EMISSION
Der Parameter params enthält vier ganzzahlige Werte, die die RGBA-emittierte Lichtintensität des Materials angeben. Ganzzahlige Werte werden linear so zugeordnet, dass der positivste darstellbare Wert 1,0 und der negativste darstellbare Wert -1,0 zugeordnet wird. Gleitkommawerte werden direkt zugeordnet. Weder ganzzahlige noch Gleitkommawerte werden geklemmt. Die Standardemissionsintensität für nach vorne und hinten ausgerichtete Materialien ist (0,0, 0,0, 0,0, 1,0).
GL_SHININESS
Der param-Parameter ist eine einzelne ganze Zahl, die den RGBA-Spiegelexponenten des Materials angibt. Ganzzahlige Werte werden direkt zugeordnet. Es werden nur Werte im Bereich [0, 128] akzeptiert. Der standardmäßige spiegelfähige Exponent für materialien, die nach vorne und nach hinten gerichtet sind, ist 0.
GL_AMBIENT_AND_DIFFUSE
Entspricht dem zweimaliges Aufrufen von glMaterial mit denselben Parameterwerten, einmal mit GL_AMBIENT und einmal mit GL_DIFFUSE.
GL_COLOR_INDEXES
Der Parameter params enthält drei ganzzahlige Werte, die die Farbindizes für die umgebungs-, diffuse und spiegelförmige Beleuchtung angeben. Diese drei Werte und GL_SHININESS sind die einzigen Materialwerte, die von der Farbindexmodus-Beleuchtungsgleichung verwendet werden. Eine Erläuterung zur Farbindexbeleuchtung finden Sie unter glLightModel .

params

Der Wert, auf den parameter GL_SHININESS festgelegt wird.

Rückgabewert

Diese Funktion gibt keinen Wert zurück.

Fehlercodes

Die folgenden Fehlercodes können von der glGetError-Funktion abgerufen werden.

Name Bedeutung
GL_INVALID_ENUM
Entweder face oder pname war kein akzeptierter Wert.
GL_INVALID_VALUE
Es wurde ein spiegelförmiger Exponent außerhalb des Bereichs von [0, 128] angegeben.

Bemerkungen

Die glMaterialiv-Funktion weist Materialparametern Werte zu. Es gibt zwei übereinstimmend Sätze von Materialparametern. Eine, die nach vorne ausgerichtete Gruppe, wird verwendet, um Punkte, Linien, Bitmaps und alle Polygone (wenn die zweiseitige Beleuchtung deaktiviert ist) oder nur nach vorne ausgerichtete Polygone (wenn die zweiseitige Beleuchtung aktiviert ist) zu schattieren. Die andere Gruppe, nach hinten ausgerichtet, wird nur verwendet, um nach hinten gerichtete Polygone zu schattieren, wenn die zweiseitige Beleuchtung aktiviert ist. Ausführliche Informationen zu einseitigen und zweiseitigen Beleuchtungsberechnungen finden Sie unter glLightModel .

Die glMaterialiv-Funktion akzeptiert drei Argumente. Das erste Gesicht gibt an, ob die GL_FRONT Materialien, die GL_BACK Materialien oder beide GL_FRONT_AND_BACK Materialien geändert werden. Der zweite, pname, gibt an, welcher von mehreren Parametern in einem oder beiden Sätzen geändert wird. Die dritte, param, gibt an, welcher Wert dem angegebenen Parameter zugewiesen wird.

Materialparameter werden in der Beleuchtungsgleichung verwendet, die optional auf jeden Scheitelpunkt angewendet wird. Die Formel wird in glLightModel erläutert.

Die Materialparameter können jederzeit aktualisiert werden. Insbesondere kann glMaterialiv zwischen einem Aufruf von glBegin und dem entsprechenden Aufruf von glEnd aufgerufen werden. Wenn jedoch nur ein einzelner Materialparameter pro Vertex geändert werden soll, wird glColorMaterial gegenüber glMaterialiv bevorzugt.

Die folgende Funktion ruft Informationen im Zusammenhang mit glMaterialiv ab:

glGetMaterial

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client)
Windows 2000 Professional [nur Desktop-Apps]
Unterstützte Mindestversion (Server)
Windows 2000 Server [nur Desktop-Apps]
Header
Gl.h
Bibliothek
Opengl32.lib
DLL
Opengl32.dll

Siehe auch

glColorMaterial

glLight

glLightModel