Freigeben über


glLightModelf-Funktion

Die glLightModelf-Funktion legt Beleuchtungsmodellparameter fest.

Syntax

void WINAPI glLightModelf(
   GLenum  pname,
   GLfloat *param
);

Parameter

pname

Ein einwertige Beleuchtungsmodellparameter. Die folgenden Werte werden akzeptiert.

Wert Bedeutung
GL_LIGHT_MODEL_LOCAL_VIEWER
Der Parameter param ist ein einzelner Gleitkommawert, der angibt, wie Spiegelwinkel berechnet werden. Wenn param 0 (oder 0,0) ist, wird die Ansichtsrichtung unabhängig von der Position des Scheitelpunkts in Augenkoordinaten parallel zu und in Richtung der -z-Achse angezeigt. Andernfalls werden Spiegelungen aus dem Ursprung des Augenkoordinatensystems berechnet. Die Standardeinstellung ist 0.
GL_LIGHT_MODEL_TWO_SIDE
Der Parameter param ist ein einzelner Gleitkommawert, der angibt, ob einseitige oder zweiseitige Beleuchtungsberechnungen für Polygone durchgeführt werden. Es hat keine Auswirkungen auf die Beleuchtungsberechnungen für Punkte, Linien oder Bitmaps. Wenn param 0 (oder 0,0) ist, wird eine einseitige Beleuchtung angegeben, und in der Beleuchtungsgleichung werden nur die Parameter des vorderen Materials verwendet. Andernfalls wird die zweiseitige Beleuchtung angegeben.
In diesem Fall werden Scheitelpunkte von nach hinten gerichteten Polygonen mithilfe der rückseitigen Materialparameter beleuchtet und ihre Normalwerte umgekehrt, bevor die Beleuchtungsgleichung ausgewertet wird. Scheitelpunkte von nach vorne gerichteten Polygonen werden immer mit den Frontmaterialparametern beleuchtet, ohne dass sich ihre Normalität ändert. Die Standardeinstellung ist 0.

param

Der Wert, auf den param 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
pname war kein akzeptierter Wert.
GL_INVALID_OPERATION
Die Funktion wurde zwischen einem Aufruf von glBegin und dem entsprechenden Aufruf von glEnd aufgerufen.

Bemerkungen

Die glLightModelf-Funktion legt den Beleuchtungsmodellparameter fest. Der pname-Parameter benennt einen Parameter, und param gibt den neuen Wert an. Der Wert oder die Werte einzelner Lichtquellenparameter.

Im RGBA-Modus ist die beleuchtete Farbe eines Scheitelpunkts die Summe der Materialemissionsintensität, das Produkt der materialischen Umgebungsreflektivität und der beleuchtungsbasierten Umgebungsintensität und des Beitrags jeder aktivierten Lichtquelle. Jede Lichtquelle trägt die Summe aus drei Begriffen bei: ambient, diffuse und specular.

  • Der Beitrag der Umgebungslichtquelle ist das Produkt der materialen Umgebungsreflektivität und der Umgebungsintensität des Lichts.
  • Der diffuse Lichtquellenbeitrag ist das Produkt der diffusen Reflexion des Materials, der diffusen Intensität des Lichts und des Punktprodukts der Normalität des Scheitelpunkts mit dem normalisierten Vektor vom Scheitelpunkt zur Lichtquelle.
  • Der Glanzlichterbeitrag ist das Produkt der materialischen Spiegelung, der Glanzintensität des Lichts und des Punktprodukts der normalisierten Vertex-to-Eye- und Vertex-to-Light-Vektoren, die auf die Kraft des Glanzes des Materials erhöht werden.

Alle drei Lichtquellen Beiträge werden basierend auf dem Abstand vom Scheitelpunkt zur Lichtquelle und nach Lichtquellenrichtung, Ausbreitungs-Exponent und Gestreuungstrennwinkel gleichmäßig abgeschwächt. Alle Punktprodukte werden durch null ersetzt, wenn sie zu einem negativen Wert ausgewertet werden.

Die Alphakomponente der resultierenden beleuchteten Farbe wird auf den Alphawert der diffusen Reflexion des Materials festgelegt.

Im Farbindexmodus reicht der Wert des beleuchteten Indexes eines Scheitelpunkts vom Ambient bis zu den Glanzwerten, die mithilfe von GL_COLOR_INDEXES an glMaterial übergeben werden. Diffuse und Spekulärkoeffizienten, berechnet mit einer Gewichtung (.30, .59, .11) der Farben des Lichts, der Glanz des Materials und den gleichen Reflexions- und Dämpfungsgleichungen wie im RGBA-Fall, bestimmen, wie hoch der resultierende Index ist.

Die folgenden Funktionen rufen Informationen im Zusammenhang mit der glLightModelf-Funktion ab:

glGet mit Argument GL_LIGHT_MODEL_LOCAL_VIEWER

glGet mit argument GL_LIGHT_MODEL_TWO_SIDE

glIsEnabled mit Argument GL_LIGHTING

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

glBegin

glEnd

glLight

glMaterial