glGetLight
Inhaltsverzeichnis
glGetLight
Name
glGetLight - liefert die Werte der Parameter von Lichtquellen zurück.
Delphi-Spezifikation
procedure glGetLightfv(light: TGLenum; pname: TGLenum; params: PGLfloat); procedure glGetLightiv(light: TGLenum; pname: TGLenum; params: PGLint);
Parameter
light | Die betreffende Lichtquelle. Die Anzahl möglicher Lichter hängt von der Implementation ab. Es werden aber mindestens acht Lichter unterstützt. Lichtquellen werden über symbolische Namen identifiziert. Diese lauten GL_LIGHTi wobei 0<= i < GL_MAX_LIGHTS ist. |
---|---|
pname | Gibt den Parameter an, der abgefragt werden soll. Akzeptiert werden: GL_AMBIENT, GL_DIFFUSE, GL_SPECULAR, GL_POSITION, GL_SPOT_DIRECTION, GL_SPOT_EXPONENT, GL_SPOT_CUTOFF, GL_CONSTANT_ATTENUATION, GL_LINEAR_ATTENUATION, und GL_QUADRATIC_ATTENUATION |
params | Liefert den Rückgabewert zurück. |
Beschreibung
glGetLight liefert in params den oder die Werte des abgefragten Parameters der Lichtquelle light zurück. light ist dabei der symbolische Name einer Lichtquelle. Die Namen haben alle die Form GL_LIGHTi wobei i von 0 bis GL_MAX_LIGHTS-1 reichen kann. GL_MAX_LIGHTS ist eine implementationsabhängige Konstante, die größer oder gleich 8 ist.
pname spezifiziert (wiederum über symbolische Namen), welcher Parameter abgefragt werden soll. pname akzeptiert dazu folgende Eingaben:
GL_AMBIENT
- params liefert vier ganzahlige oder Fließkommawerte zurück. Diese representieren die Helligkeit des ambienten Lichts.
- Integerwerte werden, wenn abgefragt, linear von der internen Fließkommarepresentation abgeleitet. Dies geschieht so, dass 1.0 auf den größtmöglichen positiven Integerwert und -1.0 auf den kleinstmöglichen negativen Integerwert abgebildet wird.
- Wenn der interne Fließkommawert außerhalb des Intervalls [-1, 1] liegt, ist der sich ergebende ganzzahlige Rückgabewert undefiniert.
GL_DIFFUSE
- params liefert vier ganzahlige oder Fließkommawerte zurück. Diese representieren die Helligkeit des diffusen Lichts.
- Integerwerte werden, wenn abgefragt, linear von der internen Fließkommarepresentation abgeleitet. Dies geschieht so, dass 1.0 auf den größtmöglichen positiven Integerwert und -1.0 auf den kleinstmöglichen negativen Integerwert abgebildet wird.
- Wenn der interne Fließkommawert außerhalb des Intervalls [-1, 1] liegt, ist der sich ergebende ganzzahlige Rückgabewert undefiniert.
GL_SPECULAR
- params liefert vier ganzahlige oder Fließkommawerte zurück. Diese representieren die Helligkeit des Glanzlichts.
- Integerwerte werden, wenn abgefragt, linear von der internen Fließkommarepresentation abgeleitet. Dies geschieht so, dass 1.0 auf den größtmöglichen positiven Integerwert und -1.0 auf den kleinstmöglichen negativen Integerwert abgebildet wird.
- Wenn der interne Fließkommawert außerhalb des Intervalls [-1, 1] liegt, ist der sich ergebende ganzzahlige Rückgabewert undefiniert.
GL_POSITION
- params liefert vier ganzahlige oder Fließkommawerte zurück. Diese representieren die Position der Lichtquelle als x-, y-, z- und w-Koordianten.
- Integerwerte werden, wenn abgefragt, direkt von der internen Fließkommadarstellung überführt. Dies geschieht durch Rundung auf den nächsten ganzzahligen Wert.
- Die Rückgabewerte sind Angaben in Betrachterkoordinaten. Sie werden nicht gleich denen sein, die mittels glLight angegeben wurden, außer die Modelviewmatrix ist die selbe wie beim aufruf von glLight.
GL_SPOT_DIRECTION
- params liefert drei ganzahlige oder Fließkommawerte zurück. Diese representieren die Richtung, in welche die Lichtquelle scheint.
- Integerwerte werden, wenn abgefragt, direkt von der internen Fließkommadarstellung überführt. Dies geschieht durch Rundung auf den nächsten ganzzahligen Wert.
- Die Rückgabewerte sind Angaben in Betrachterkoordinaten. Sie werden nicht gleich denen sein, die mittels glLight angegeben wurden, außer die Modelviewmatrix ist die selbe wie beim aufruf von glLight.
- Obwohl die Richtung der Lichtquelle normalisiert wird, bevor sie in der Lichtberechnung benutzt wird, sind die Rückgabewerte die transformierten Versionen der jeweiligen Werte bevor(!) sie normalisiert wurden.
GL_SPOT_EXPONENT
- params liefert eine Ganzahl oder einen Fließkommawerte zurück. Die Rückgabe representieren die Intensitätsverteilung (Spot Exponent) der Lichtquelle.
- Integerwerte werden, wenn abgefragt, direkt von der internen Fließkommadarstellung überführt. Dies geschieht durch Rundung auf den nächsten ganzzahligen Wert.
GL_SPOT_CUTOFF
- params liefert eine Ganzahl oder einen Fließkommawerte zurück. Die Rückgabe representieren den Streuungswinkel (Spot Cuttoff) der Lichtquelle.
- Integerwerte werden, wenn abgefragt, direkt von der internen Fließkommadarstellung überführt. Dies geschieht durch Rundung auf den nächsten ganzzahligen Wert.
GL_CONSTANT_ATTENUATION
- params liefert eine Ganzahl oder einen Fließkommawerte zurück. Die Rückgabe representieren den konstanten (nicht distanzabhängigen) Anteil der Lichtabschwächung für die Lichtquelle.
- Integerwerte werden, wenn abgefragt, direkt von der internen Fließkommadarstellung überführt. Dies geschieht durch Rundung auf den nächsten ganzzahligen Wert.
GL_LINEAR_ATTENUATION
- params liefert eine Ganzahl oder einen Fließkommawerte zurück. Die Rückgabe representieren den linearen Anteil der Lichtabschwächung für die Lichtquelle.
- Integerwerte werden, wenn abgefragt, direkt von der internen Fließkommadarstellung überführt. Dies geschieht durch Rundung auf den nächsten ganzzahligen Wert.
GL_QUADRATIC_ATTENUATION
- params liefert eine Ganzahl oder einen Fließkommawerte zurück. Die Rückgabe representieren den quadratischen Anteil der Lichtabschwächung für die Lichtquelle.
- Integerwerte werden, wenn abgefragt, direkt von der internen Fließkommadarstellung überführt. Dies geschieht durch Rundung auf den nächsten ganzzahligen Wert.
Es gilt immer: GL_LIGHTi = GL_LIGHT0 + i
Hinweise
Tritt ein Fehler auf, werden keine Veränderungen am Inhalt von params gemacht.
Fehlermeldungen
GL_INVALID_ENUM wird generiert, wenn light oder pname kein gültiger Wert übergeben wurde.
GL_INVALID_OPERATION wird generiert, wenn glGetLight innerhalb eines glBegin-glEnd-Blocks aufgerufen wird.