glLightiv-Funktion

Die glLightiv-Funktion gibt Parameterwerte der Lichtquelle zurück.

Syntax

void WINAPI glLightiv(
         GLenum light,
         GLenum pname,
   const GLint  *params
);

Parameter

light

Der Bezeichner eines Lichts. Die Anzahl möglicher Leuchten hängt von der Implementierung ab, aber mindestens acht Leuchten werden unterstützt. Sie werden durch symbolische Namen der Form GL_LIGHTi identifiziert, wobei i ein Wert ist: 0 bis GL_MAX_LIGHTS - 1.

pname

Ein Lichtquellenparameter für Licht. Die folgenden symbolischen Namen werden akzeptiert.

Wert Bedeutung
GL_AMBIENT
Der Parameter params enthält vier ganzzahlige Werte, die die RGBA-Umgebungsintensität des Lichts angeben. Ganzzahlige Werte werden linear so zugeordnet, dass der positivste darstellbare Wert 1,0 und der negativste darstellbare Wert -1,0 zugeordnet wird. Gleitkommawerte werden direkt zugeordnet. Weder ganzzahlige noch Gleitkommawerte werden geklemmt. Die Standardmäßige Umgebungslichtstärke ist (0,0, 0,0, 0,0, 1,0).
GL_DIFFUSE
Der parameter params enthält vier ganzzahlige Werte, die die diffuse RGBA-Intensität des Lichts angeben. Ganzzahlige Werte werden linear so zugeordnet, dass der positivste darstellbare Wert 1,0 und der negativste darstellbare Wert -1,0 zugeordnet wird. Gleitkommawerte werden direkt zugeordnet. Weder ganzzahlige noch Gleitkommawerte werden geklemmt. Die diffuse Standardintensität ist (0,0, 0,0, 0,0, 1,0) für alle anderen Leuchten als Licht null. Die standardmäßige diffuse Intensität des Lichts null ist (1,0, 1,0, 1,0, 1,0).
GL_SPECULAR
Der params-Parameter enthält vier ganzzahlige Werte, die die spiegelförmige RGBA-Intensität des Lichts angeben. Ganzzahlige Werte werden linear zugeordnet, sodass der positivste darstellbare Wert 1,0 und der negativste darstellbare Wert 1,0 zugeordnet wird. Gleitkommawerte werden direkt zugeordnet. Weder ganzzahlige noch Gleitkommawerte werden geklemmt. Die standardmäßige spiegelförmige Intensität ist (0,0, 0,0, 0,0, 1,0) für alle Anderen Leuchten als Licht null. Die standardmäßige spiegelförmige Intensität des Lichts null ist (1,0, 1,0, 1,0, 1,0).
GL_POSITION
Der Parameter params enthält vier ganzzahlige Werte, die die Position des Lichts in homogenen Objektkoordinaten angeben. Sowohl ganzzahlige Werte als auch Gleitkommawerte werden direkt zugeordnet. Weder ganzzahlige noch Gleitkommawerte werden geklemmt.
Die Position wird von der Modellansichtsmatrix transformiert, wenn glLightiv aufgerufen wird (wie ein Punkt), und sie wird in Augenkoordinaten gespeichert. Wenn die w-Komponente der Position 0,0 ist, wird das Licht als Richtungsquelle behandelt. Diffuse und spiegelförmige Beleuchtungsberechnungen berücksichtigen die Richtung des Lichts, aber nicht seine tatsächliche Position, und die Dämpfung ist deaktiviert. Andernfalls basieren diffuse und spekuläre Beleuchtungsberechnungen auf der tatsächlichen Position des Lichts in Augenkoordinaten, und die Dämpfung ist aktiviert. Die Standardposition ist (0,0,1,0); Daher ist die Standardlichtquelle richtungsweise, parallel zu und in Richtung der -z-Achse .
GL_SPOT_DIRECTION
Der Parameter params enthält drei ganzzahlige Werte, die die Richtung des Lichts in homogenen Objektkoordinaten angeben. Sowohl ganzzahlige Werte als auch Gleitkommawerte werden direkt zugeordnet. Weder ganzzahlige noch Gleitkommawerte werden geklemmt.
Die Spotrichtung wird durch die Inverse der Modellansichtsmatrix transformiert, wenn glLightiv aufgerufen wird (so, als wäre es ein normaler Wert), und sie wird in Augenkoordinaten gespeichert. Sie ist nur dann von Bedeutung, wenn GL_SPOT_CUTOFF nicht 180 ist, was standardmäßig der Standard ist. Die Standardrichtung ist (0,0,1).
GL_SPOT_EXPONENT
Der params-Parameter ist ein einzelner ganzzahliger Wert, der die Intensitätsverteilung des Lichts angibt. Ganzzahlige Werte und Gleitkommawerte werden direkt zugeordnet. Es werden nur Werte im Bereich [0, 128] akzeptiert.
Die effektive Lichtintensität wird durch den Kosinus des Winkels zwischen der Richtung des Lichts und der Richtung vom Licht zum Scheitelpunkt abgeschwächt, der zur Kraft des Spot-Exponenten angehoben wird. Daher führen höhere Spot-Exponenten zu einer fokussierteren Lichtquelle, unabhängig vom Punktausschnittwinkel. Der Standardspotexponent ist 0, was zu einer gleichmäßigen Lichtverteilung führt.
GL_SPOT_CUTOFF
Der Parameter params ist ein einzelner ganzzahliger Wert, der den maximalen Streuwinkel einer Lichtquelle angibt. Ganzzahlige Werte und Gleitkommawerte werden direkt zugeordnet. Es werden nur Werte im Bereich [0, 90] und dem Sonderwert 180 akzeptiert.
Wenn der Winkel zwischen der Richtung des Lichts und der Richtung vom Licht zum beleuchteten Scheitelpunkt größer ist als der Punkttrennwinkel, wird das Licht vollständig maskiert. Andernfalls wird seine Intensität durch den Spot-Exponenten und die Dämpfungsfaktoren gesteuert. Der Standardmäßige Spot-Cutoff ist 180, was zu einer gleichmäßigen Lichtverteilung führt.
GL_CONSTANT_ATTENUATION, GL_LINEAR_ATTENUATION, GL_QUADRATIC_ATTENUATION
Der params-Parameter ist ein einzelner ganzzahliger Wert, der einen der drei Lichtdämpfungsfaktoren angibt. Ganzzahlige Werte und Gleitkommawerte werden direkt zugeordnet. Es werden nur nicht negative Werte akzeptiert.
Wenn das Licht positional und nicht richtungsmäßig ist, wird seine Intensität durch den Reziproz der Summe von abgeschwächt: dem konstanten Faktor, dem linearen Faktor multipliziert mit dem Abstand zwischen Licht und Scheitelpunkt und dem quadratischen Faktor multipliziert mit dem Quadrat derselben Entfernung. Die Standardabschwächungsfaktoren sind (1,0,0), was zu keiner Dämpfung führt.

params

Gibt den Wert an, auf den der Parameter pname des Lichtquellenlichts 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
light oder pname war kein akzeptierter Wert.
GL_INVALID_VALUE
Ein Spot-Exponentenwert wurde außerhalb des Bereichs [0, 128] angegeben, oder der Spot-Cutoff wurde außerhalb des Bereichs [0, 90] angegeben (mit Ausnahme des Sonderwerts 180), oder es wurde ein negativer Dämpfungsfaktor angegeben.
GL_INVALID_OPERATION
Die Funktion wurde zwischen einem Aufruf von glBegin und dem entsprechenden Aufruf von glEnd aufgerufen.

Bemerkungen

Die glLightiv-Funktion legt den Wert oder die Werte einzelner Lichtquellenparameter fest. Der Lichtparameter benennt das Licht und ist ein symbolischer Name der Form GL_LIGHTi, wobei 0 = i< GL_MAX_LIGHTS.

Der pname-Parameter gibt einen der Lichtquellenparameter an, wiederum durch symbolischen Namen. Der parameter params ist entweder ein einzelner Wert oder ein Zeiger auf ein Array, das die neuen Werte enthält.

Die Beleuchtungsberechnung wird mithilfe von glEnable und glDisable mit argument GL_LIGHTING aktiviert und deaktiviert. Wenn die Beleuchtung aktiviert ist, tragen aktivierte Lichtquellen zur Beleuchtungsberechnung bei. Die Lichtquelle i ist mit glEnable und glDisable mit argument GL_LIGHTi aktiviert und deaktiviert.

Es ist immer so, dass GL_LIGHTi = GL_LIGHT0 + i.

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

glGetLight

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

glColorMaterial

glEnd

glLightModel

glMaterial