gl.ColorMaterial(face, mode)
gl.ColorMaterial()
gibt an, welche Materialparameter sich auf die aktuelle
Farbe auswirkt. Wenn #GL_COLOR_MATERIAL
aktiviert ist, wirken sich die in
mode
angegebenen Materialparameter oder Parameter, die in face
angegebe
Materials oder der angegebenen Materialien, zu jeder Zeit auf die aktuelle
Farbe. face
kann auf #GL_FRONT
, #GL_BACK
oder #GL_FRONT_AND_BACK
gesetzt werden. Der Anfangswert ist #GL_FRONT_AND_BACK
.
Die folgenden Werte können im Parameter mode
übergeben werden: #GL_EMISSION
,
#GL_AMBIENT
, #GL_DIFFUSE
, #GL_SPECULAR
und #GL_AMBIENT_AND_DIFFUSE
. Der
Anfangswert ist #GL_AMBIENT_AND_DIFFUSE
.
Um #GL_COLOR_MATERIAL
zu aktivieren und zu deaktivieren, rufen Sie
gl.Enable() und gl.Disable()
mit dem Argument #GL_COLOR_MATERIAL
auf. #GL_COLOR_MATERIAL
ist
anfangs deaktiviert.
gl.ColorMaterial()
ermöglicht es, eine Untermenge von Materialparametern
für jeden Scheitel nur mit dem Befehl gl.Color() zu
ändern, ohne gl.Material() aufzurufen. Wenn nur
eine solche Teilmenge von Parametern für jeden Scheitel angegeben werden
soll, ist der Aufruf von gl.ColorMaterial()
besser als der Aufruf von
gl.Material().
Rufen Sie gl.ColorMaterial()
vor dem Aktivieren von #GL_COLOR_MATERIAL
auf.
Durch den Aufruf von gl.DrawElements() oder
gl.DrawArrays() kann die aktuelle Farbe unbestimmt
bleiben, wenn das Farb-Feld aktiviert ist. Wenn gl.ColorMaterial()
aktiviert
ist, während die aktuelle Farbe unbestimmt ist, ist der durch face
und mode
angegebene Status des Beleuchtungsmaterials ebenfalls unbestimmt.
Wenn die GL-Version 1.1 oder höher ist und #GL_COLOR_MATERIAL
aktiviert
ist, wirken sich ausgewertete Farbwerte auf die Ergebnisse der
Beleuchtungsgleichung so aus, als ob die aktuelle Farbe geändert würde, aber
der Beleuchtungsparametern der aktuellen Farbe wird nicht geändert.
Weitere Informationen finden Sie in einem OpenGL-Referenzhandbuch.
#GL_INVALID_ENUM
wird generiert, wenn face
oder der Modus kein akzeptierter Wert ist.
#GL_INVALID_OPERATION
wird erzeugt, wenn gl.ColorMaterial()
zwischen
gl.Begin() und gl.End() ausgeführt wird.
#GL_COLOR_MATERIAL
gl.Get() mit dem Argument #GL_COLOR_MATERIAL_PARAMETER
gl.Get() mit dem Argument #GL_COLOR_MATERIAL_FACE