glTexGenfv-Funktion

Steuert die Generierung von Texturkoordinaten.

Syntax

void WINAPI glTexGenfv(
         GLenum  coord,
         GLenum  pname,
   const GLfloat *params
);

Parameter

Coord

Eine Texturkoordinate. Dies muss einer der folgenden Sein: GL _ S, GL _ T, GL _ R oder GL _ Q.

pname

Der symbolische Name der Texturkoordinatengenerierungsfunktion.

params

Ein Array von Floats, das die Koeffizienten für die entsprechende Texturgenerierungsfunktion enthält.

GLfloat zPlane[] = { 0.0f, 0.0f, 1.0f, 0.0f };

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
coord oder pname war kein akzeptierter definierter Wert, oder pname war GL TEXTURE GEN MODE, und _ _ _ params waren kein akzeptierter definierter Wert.
UNGÜLTIGER _ _ GL-VORGANG
Die Funktion wurde zwischen einem Aufruf von glBegin und dem entsprechenden Aufruf von glEnd aufgerufen.

Bemerkungen

Die glTexGen-Funktion wählt eine Texturkoordinatengenerierungsfunktion aus oder stellt Koeffizienten für eine der Funktionen zur Verfügung. Der koord-Parameter benennt eine der Texturkoordinaten (s,t,r,q), und es muss eines der folgenden Symbole sein: GL _ S, GL T, GL R oder GL _ _ _ Q. Der pname-Parameter muss eine von drei symbolischen Konstanten sein: GL _ TEXTURE GEN _ _ MODE, GL OBJECT PLANE oder GL _ EYE _ _ _ PLANE. Wenn pname entweder GL OBJECT PLANE oder GL EYE PLANE ist, enthält _ _ _ _ param Koeffizienten für die entsprechende Texturgenerierungsfunktion.

Wenn die Texturgenerierungsfunktion GL _ OBJECT _ LINEAR ist, die Funktion

! [Die Gleichung zeigt die glTexGen-Funktion, wenn die Texturgenerierungsfunktion GL_OBJECT_LINEAR.]

wird verwendet, wobei g der Wert ist, der für die koord benannte Koordinate berechnet wird. p1, p2, p3 und p4 sind die vier Werte, die in Parametern angegeben werden. und x?, y?, z? und w? sind die Objektkoordinaten des Scheitelpunkts. Sie können diese Funktion zum Strukturieren von Gelände verwenden, indem Sie den Seepegel als Referenzebene verwenden (definiert durch p1, p2, p3 und p4). Die GL OBJECT LINEAR-Koordinatengenerierungsfunktion berechnet die Höhe eines Geländevertex als Entfernung vom Seeniveau. Diese Höhe wird verwendet, um das Texturbild zu indizieren, um z. B. Weißen Schnee auf Spitzen und grünes Grünland auf Fußflächen zu _ _ ordnen.

Wenn die Texturgenerierungsfunktion GL _ EYE _ LINEAR ist, die Funktion

! [Gleichung, die die glTexGen-Funktion zeigt, wenn die Texturgenerierungsfunktion GL_EYE_LINEAR.]

wird verwendet, wobei

Gleichung, die die Augenkoordinaten des Scheitelpunkts zeigt.

und x?, y?, z? und w? sind die Augenkoordinaten des Scheitelpunkts, p1, p2, p3 und p4 sind die Werte, die im Parameter angegeben werden, und M ist die Modellansichtsmatrix, wenn Sie glTexGen aufrufen. Wenn M schlecht konditioniert oder singulär ist, können texturkoordinaten, die von der resultierenden Funktion generiert werden, ungenau oder nicht definiert sein.

Beachten Sie, dass die Werte im Parameter eine Verweisebene in Augenkoordinaten definieren. Die modelview-Matrix, die auf sie angewendet wird, ist möglicherweise nicht die gleiche, wenn die Polygonvertices transformiert werden. Diese Funktion richtet ein Feld von Texturkoordinaten ein, die dynamische Konturlinien für sich bewegende Objekte erzeugen können.

Wenn pname GL _ SPHERE MAP und _ coord entweder GL S oder GL T ist, werden die Texturkoordinaten s und _ t wie folgt _ generiert. Lassen Sie uns den Einheitenvektor verwenden, der vom Ursprung auf den Polygonvertex (in Augenkoordinaten) zeigen soll. Lassen Sie uns nach der Transformation in Augenkoordinaten die aktuelle Normalität sein. Lassen Sie f = (fx ( ) fy ( ) fz)T der Reflektionsvektor sein, damit

Gleichung, die den Reflektionsvektor als Funktion des Einheitenvektors und der aktuellen Normalität zeigt.

Lassen Sie abschließend

Gleichung, die m als Funktion des Reflektionsvektors zeigt.

Dann sind die Werte, die den Texturkoordinaten i und t zugewiesen sind,

Die Gleichung zeigt werte, die den Texturkoordinaten i und t zugewiesen sind.

Sie können eine Texturkoordinatengenerierungsfunktion aktivieren oder deaktivieren, indem Sie glEnable oder glDisable mit einem der symbolischen Texturkoordinatennamen (GL _ TEXTURE GEN _ _ S, GL TEXTURE GEN T, GL TEXTURE GEN R oder GL TEXTURE GEN Q) als Argument _ _ _ _ _ _ _ _ _ verwenden. Wenn diese Funktion aktiviert ist, wird die angegebene Texturkoordinate gemäß der generierenden Funktion berechnet, die dieser Koordinate zugeordnet ist. Wenn diese Funktion deaktiviert ist, übernehmen nachfolgende Scheitelungen die angegebene Texturkoordinate aus dem aktuellen Satz von Texturkoordinaten. Anfänglich sind alle Texturgenerierungsfunktionen auf GL _ EYE LINEAR festgelegt und _ deaktiviert. Beide Gleichungen der Ebene sind (1,0,0,0); Beide Gleichungen der T-Ebene sind (0,1,0,0); und alle r- und q-Ebenengleichungen sind (0,0,0,0).

Die folgenden Funktionen rufen Informationen im Zusammenhang mit glTexGen ab:

glGetTexGen
glIsEnabled mit Argument GL _ TEXTURE GEN _ _ S
glIsEnabled mit Argument GL _ TEXTURE GEN _ _ T
glIsEnabled mit Argument GL _ TEXTURE GEN _ _ R
glIsEnabled mit Argument GL _ TEXTURE GEN _ _ Q

Requirements (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

Weitere Informationen

glBegin

glEnd

glCopyTexImage2D

glCopyTexSubImage2D

glGetTexGen

glIsEnabled

glTexEnv

glTexImage1D

glTexParameter

glTexSubImage1D

glTexSubImage2D