Bezeichnung
gl.LightModel -- stellt den Parameter des Beleuchtungsmodells ein
Übersicht
gl.LightModel(pname, param)
Beschreibung
gl.LightModel() setzt den Parameter des Beleuchtungsmodells. pname benennt einen Parameter und param gibt den neuen Wert an. Es gibt drei Parameter für das Beleuchtungsmodell:

#GL_LIGHT_MODEL_AMBIENT
param muss vier Gleitkommawerte enthalten, die die Umgebungs-RGBA-Intensität der gesamten Szene angeben. Die anfängliche Intensität der Umgebungsszene ist (0.2, 0.2, 0.2, 1.0).

#GL_LIGHT_MODEL_LOCAL_VIEWER
param muss ein einzelner Gleitkommawert sein, der angibt, wie spiegelnde Reflexionswinkel berechnet werden. Wenn param gleich 0 ist, nehmen spiegelnde Reflexionswinkel die Blickrichtung parallel zur und in Richtung der -z Achse an, unabhängig von der Position des Scheitelpunktes in Augenkoordinaten. Andernfalls werden Spiegelreflexionen aus dem Ursprung des Augenkoordinatensystems berechnet. Der Anfangswert ist 0.

#GL_LIGHT_MODEL_TWO_SIDE
param muss ein einzelner Gleitkommawert sein, der angibt, ob ein- oder zweiseitige Lichtberechnungen für Polygone durchgeführt werden. Sie hat keinen Einfluss auf die Lichtberechnungen für Punkte, Linien oder Bitmaps. Wenn param gleich 0 ist, wird eine einseitige Beleuchtung angegeben und es werden nur die Materialparameter der Vorderseite in der Beleuchtungsgleichung verwendet. Andernfalls ist eine zweiseitige Beleuchtung vorgesehen. In diesem Fall werden die Scheitelpunkte von nach hinten gerichteten Polygonen mit den Parametern des nach hinten gerichteten Materials beleuchtet und ihre Normalen umgekehrt, bevor die Beleuchtungsgleichung ausgewertet wird. Eckpunkte von nach vorne gerichteten Polygonen sind immer unter Verwendung der vorderen Materialparameter beleuchtet, ohne Änderung ihrer Normalen. Der Anfangswert ist 0.

Im RGBA-Modus ist die beleuchtete Farbe eines Scheitelpunktes die Summe aus der Materialemissionsintensität, dem Produkt aus dem Materialumgebungsreflexionsgrad und der Vollbildumgebungsintensität des Beleuchtungsmodells sowie dem Beitrag jeder aktivierten Lichtquelle. Jede Lichtquelle trägt die Summe von drei Teilen bei: Ambient, diffus und specular. Der Beitrag der Umgebungslichtquelle ergibt sich aus dem Produkt aus dem Material Umgebungsreflexionsgrad und der Umgebungsintensität des Lichts. Der Beitrag der diffusen Lichtquelle ist das Produkt aus der diffusen Material-Reflexion, der diffusen Intensität des Lichts und dem Punktprodukt der Normalität des Scheitels mit dem normierten Vektor vom Scheitelpunkt zur Lichtquelle. Der Beitrag der spiegelnden Lichtquelle ist das Produkt aus dem Materialspiegelreflexionsgrad, der Spiegelintensität des Lichts und dem Punktprodukt der normierten Scheitel-Augen- und Scheitel-Licht-Vektoren, womit die Kraft des Glanzes des Materials erhöht werden. Alle drei Lichtquellenbeiträge werden gleichmäßig gedämpft, basierend auf dem Abstand vom Scheitelpunkt zur Lichtquelle und der Lichtquellenrichtung, dem Spreizexponenten und dem Spreizwinkel. Alle Punktprodukte werden durch 0 ersetzt, wenn sie zu einem negativen Wert berechnet werden.

Die Alpha-Komponente der resultierenden leuchtenden Farbe wird auf den Alpha-Wert des Materials diffuser Reflexionsgrad eingestellt.

Im Farbindexmodus reicht der Wert des beleuchteten Index eines Scheitels von der Umgebung bis zu den an gl.Material() übergebenen Spiegelungswerten mit #GL_COLOR_INDEXES. Diffuse und spiegelnde Koeffizienten, berechnet mit einer (.30, .59, .11) Gewichtung der Lichtfarben, des Glanzes des Materials und den gleichen Reflexions- und Dämpfungsgleichungen wie im RGBA-Fall, bestimmen, wie weit über der Umgebung der resultierende Index liegt.

Weitere Informationen finden Sie in einem OpenGL-Referenzhandbuch.

Eingaben
pname
gibt einen einzelwertigen Lichtmodellparameter an (siehe oben)
param
einen einzelnen Gleitkommawert oder eine Tabelle mit mehreren Gleitkommawerten (abhängig vom Parameter pname, siehe oben)
Fehler
#GL_INVALID_ENUM wird erzeugt, wenn pname kein akzeptierter Wert ist.

#GL_INVALID_OPERATION wird erzeugt, wenn gl.LightModel() zwischen gl.Begin() und gl.End() ausgeführt wird.

Verbundene get-operationen
gl.Get() mit dem Argument #GL_LIGHT_MODEL_AMBIENT

gl.Get() mit dem Argument #GL_LIGHT_MODEL_LOCAL_VIEWER

gl.Get() mit dem Argument #GL_LIGHT_MODEL_TWO_SIDE

gl.IsEnabled() mit dem Argument #GL_LIGHTING


Navigation zeigen