glTexEnv
(Mehr Informationen/weitere Artikel) {{{1}}} |
Bitte haben Sie etwas Geduld und nehmen Sie keine Änderungen vor, bis der Artikel hochgeladen wurde. |
Inhaltsverzeichnis
glTexEnv
Name
glTexEnvf, glTexEnvi, glTexEnvfv, glTexEnviv - Setzt Parameter für das Textur-Environment
Delphi-Spezifikation
procedure glTexEnvf(target : GLenum; pname : GLenum; param : GLfloat)
procedure glTexEnvi(target : GLenum; pname : GLenum; param : GLint)
Parameter
target | Gibt ein Textur-Environment an. Muss vom Typ GL_TEXTURE_ENV sein. |
---|---|
pname | Gibt den symbolischen Namen eines Parameters des Textur-Environments an. Muss vom Typ GL_TEXTURE_ENV_MODE sein. |
param | Gibt eine einzelne symbolische Konstante an. Muss entweder vom Typ GL_MODULATE, GL_DECAL, GL_BLEND oder GL_REPLACE. |
Delphi-Spezifikation
procedure glTexEnvfv(target : GLenum; pname : GLenum; const params : ^GLfloat)
procedure glTexEnviv(target : GLenum; pname : GLenum; const params : ^GLint)
Parameter
target | Gibt ein Textur-Environment an. Muss vom Typ GL_TEXTURE_ENV sein. |
---|---|
pname | Gibt den symbolischen Namen eines Parameters des Textur-Environments an. Akzeptiert werden GL_TEXTURE_ENV_MODE und GL_TEXTURE_ENV_COLOR. |
params | Gibt einen Pointer auf ein Parameter-Array an, das entweder eine einzelne symbolische Konstante oder eine Farbe im RGBA-Format enthält. |
Beschreibung
Ein Textur-Environment legt fest, wie Texturwerte interpretiert werden, wenn ein Fragment texturiert wird. target muss vom Typ GL_TEXTURE_ENV sein. pname kann GL_TEXTURE_ENV_MODE oder GL_TEXTURE_ENV_COLOR sein.
Wenn pname die Konstante GL_TEXTURE_ENV_MODE zugewiesen ist, dann ist params (bzw zeigt params auf) der symbolische Name einer Texturfunktion. Vier Texturfunktionen müssen angegeben werden: GL_MODULATE, GL_DECAL, GL_BLEND und GL_REPLACE.
Eine Texturfunktion wird unter Verwendung des Textur-Wertes des zu behandelnden Fragments auf das zu texturierende Fragment angewendet (siehe glTexParameter) und erzeugt eine Farbe im RGBA-Format für dieses Fragment. Die folgende Tabelle zeigt, wie die RGBA-Farbe durch jede dieser wählbaren Funktionen generiert wird. C ist ein Triplet mit den Farbwerten (R,G,B) und A ist der Alpha-Wert. RGBA-Werte, die aus der Textur entnommen werden, sind in dem Bereich [0,1]. Das tiefergestellte f bezieht sich auf eingehende Fragment, das tiefergestellte c auf die Farbe des Textur-Environments und das tiefergestellte v verweist auf der Wert, den die Texturfunktion liefert.
Eine Textur kann bis zu vier Komponenten pro Texturelement haben (siehe glTexImage1D, glTexImage2D, glCopyTexImage1D und glCopyTexImage2D). In einem Bild mit einer Komponente, zeigt L auf diese einzelne Komponente. Ein Bild mit zwei Komponenten nutzt L und A. Ein Bild mit drei Komponenten hat nur einen Color-Wert Ct. Ein Bild mit vier Komponenten hat einen Farbwert C und einen Alpha-Wert A.
Tabelle unter diesem Link so ähnlich wie folgende Tabelle gestalten: Datei:http://www.mevis.de/opengl/glTexEnv.f1.gif
Base internal format |
Texture functions | |||
---|---|---|---|---|
GL_MODULATE | GL_DECAL | GL_BLEND | GL_REPLACE | |
GL_ALPHA | C =C A =A A |
undefined | C =C Av=Af |
C =C Av=Af |
GL_LUMINANCE 1 |
C =L C v t f |
undefined | C =(1-L )C v +L Ct f t c A =A |
Cv =Lt A =A |
GL_LUMINANCE_ALPHA 2 |
C =L C v t f A =A A |
undefined | C =(1-L )C v +L C f t c A =A A |
C =L v t A =A |
GL_INTENSITY | C =C I v f t A =A I v f t |
undefined | C =(1-I )C v +I Ct f t c A =(1-I )A v +I At f |
C =I v t A =I v t |
GL_RGB 3 |
C =C C v t f A =A |
C =C v t A =A |
C =(1-C C v +C C) f t c A =A |
C =C v t A =A |
GL_RGBA 4 |
C =C C v t f A =A A |
C =(1-A )C v +A Ct f t t A =A |
C =(1-C C v +C C) f t c A =A A |
C =C v t A =A |
Wenn pname vom Typ GL_TEXTURE_ENV_COLOR ist, ist params ein Pointer auf ein Array, das eine Farbe im RGBA-Format enhält. Farbkomponenten aus Integer-Werten werden linear interpretiert, so dass der größte positive Integer-Wert auf 1.0 und der kleinste negative Wert auf -1.0 fällt. Die Werte werden in den [0,1]-Bereich eingepasst, wenn sie spezifizert werden. Cc enthält diese vier Werte.
Werden keine Werte zugewiesen, dann hat GL_TEXTURE_ENV_MODE den Wert GL_MODULATE und GL_TEXTRE_ENV_COLOR die Werte (0, 0, 0, 0).
Hinweise
GL_REPLACE ist nur verfügbar, wenn die OpenGL-Version gleich oder höher als 1.1 ist.
Interne Formate anders als 1, 2, 3 oder 4 dürften nur nutzbar sein, wenn die OpenGL-Version gleich oder höher als 1.1 ist.
Änderungen
Folgende Erweiterungen hat die Funktion erfahren:
Ab OpenGL Version 1.2.1
Wenn mehrere Texture Stages durch GL_ARB_multitexturing verwendet werden, so kann für jede Texture Stage die TexEnv-Funktion extra angegeben werden.
Ab OpenGL Version 1.3
Wenn glTexEnvi( GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_COMBINE_ARB) verwendet wird, so wird die Berechnung der entsprechenden Texture Stage durch GL_ARB_texture_env_combine ersetzt.
Fehlermeldungen
GL_INVALID_ENUM wird generiert, wenn target oder pname keine der akzeptablen, definierten Werte ist, oder wenn params eine definierte Konstante haben soll (abhängig vom Wert von pname) und keine hat.
GL_INVALID_OPERATION wird generiert, wenn glTexEnv innerhalb eines glBegin-glEnd Blocks aufgerufen wird.
Zugehörige Wertrückgaben
Siehe auch
glCopyPixels, glCopyTexImage1D, glCopyTexImage2D, glCopyTexSubImage1D, glCopyTexSubImage2D, glTexImage1D, glTexImage2D, glTexParameter, glTexSubImage1D, glTexSubImage2D