glGetLight

Aus DGL Wiki
Version vom 20. Juli 2011, 02:26 Uhr von Thoronador (Diskussion | Beiträge) (Kategorisierung, Wikisyntax für Tabelle)

(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
Wechseln zu: Navigation, Suche

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.



Siehe auch

glLight