Bezeichnung
gl.Fog -- gibt die Nebelparameter an
Übersicht
gl.Fog(pname, param)
Beschreibung
Nebel ist zunächst deaktiviert. Wenn aktiviert, wirkt sich Nebel auf gerasterte Geometrien, Bitmaps und Pixelblöcke aus, nicht aber auf Löschvorgänge. Um Nebel zu aktivieren und zu deaktivieren, rufen Sie gl.Enable() und gl.Disable() mit dem Argument #GL_FOG auf.

gl.Fog() weist dem durch pname angegebenen Nebelparameter den oder die Werte in Paramentern zu. Die folgenden Werte werden für pname akzeptiert:

#GL_FOG_MODE
param ist ein einzelner Gleitkommawert, der die Gleichung angibt, die zur Berechnung des Nebelblendfaktors f zu verwenden ist. Drei symbolische Konstanten werden akzeptiert: #GL_LINEAR, #GL_EXP und #GL_EXP2. Die Gleichungen, die diesen symbolischen Konstanten entsprechen, sind im Folgenden definiert. Der anfängliche Nebelmodus ist #GL_EXP.

#GL_FOG_DENSITY
param ist ein einzelner Gleitkommawert, der die Dichte angibt, die in beiden exponentiellen Nebelgleichungen verwendete Nebeldichte. Es werden nur nichtnegative Dichten akzeptiert. Die anfängliche Nebeldichte ist 1.

#GL_FOG_START
param ist ein einzelner Gleitkommawert, der den Start, den in der linearen Nebelgleichung verwendeten Nahbereich, angibt. Der anfängliche Nahbereich ist 0.

#GL_FOG_END
param ist ein einzelner Gleitkommawert, der das Ende, den in der linearen Nebelgleichung verwendeten Fernbereich, angibt. Der anfängliche Fernbereich ist 1.

#GL_FOG_INDEX
param ist ein einzelner Gleitkommawert, der den Nebelfarbindex i f angibt. Der anfängliche Nebelindex ist 0.

#GL_FOG_COLOR
param muss eine Tabelle mit vier Gleitkommawerten sein, die die Nebelfarbe Cf angeben. Alle Farbkomponenten werden in den Bereich [0,1] festgelegt. Die anfängliche Nebelfarbe ist (0, 0, 0, 0).

Fog mischt eine Nebelfarbe mit der Farbe jedes gerasterten Pixelfragments nach der Texturierung unter Verwendung eines Mischfaktors f. Der Faktor f wird je nach Nebelmodus auf eine von drei Arten berechnet. c ist der Abstand in Augenkoordinaten vom Ursprung bis zum vernebelten Fragment. Die Gleichung für #GL_LINEAR Nebel lautet wie folgt:

 
f = (end - c) / (end - start)

Die Gleichung für #GL_EXP Nebel lautet:

 
f = e^(-density*c)

Die Gleichung für #GL_EXP2 Nebel lautet:

 
f = e^(-density*c)^2

Unabhängig vom Nebelmodus wird f nach der Berechnung in den Bereich [0,1] festgelegt. Wenn sich GL dann im RGBA-Farbmodus befindet, werden die roten, grünen und blauen Farben des Fragments durch Cr ersetzt-

 
Cr' = f*Cr+(1-f)*Cf

Fog beeinflusst nicht die Alpha-Komponente eines Fragments.

Im Farbindexmodus wird der Farbindex ir des Fragments ersetzt durch

 
ir' = f*ir+(1-f)*if

Weitere Informationen finden Sie in einem OpenGL-Referenzhandbuch.

Eingaben
pname
gibt einen einzeln Nebelparameter an; #GL_FOG_MODE, #GL_FOG_DENSITY, #GL_FOG_START, #GL_FOG_END, #GL_FOG_INDEX und #GL_FOG_COLOR werden akzeptiert
param
gibt den Wert an, auf den pname gesetzt wird
Fehler
#GL_INVALID_ENUM wird erzeugt, wenn pname kein akzeptierter Wert ist, oder wenn pname #GL_FOG_MODE ist und param kein akzeptierter Wert ist.

#GL_INVALID_VALUE wird erzeugt, wenn pname #GL_FOG_DENSITY ist und param negativ ist.

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

Verbundene get-operationen
gl.IsEnabled() mit dem Argument #GL_FOG

gl.Get() mit dem Argument #GL_FOG_COLOR

gl.Get() mit dem Argument #GL_FOG_INDEX

gl.Get() mit dem Argument #GL_FOG_DENSITY

gl.Get() mit dem Argument #GL_FOG_START

gl.Get() mit dem Argument #GL_FOG_END

gl.Get() mit dem Argument #GL_FOG_MODE


Navigation zeigen