glTexEnv: Unterschied zwischen den Versionen
(Offline genommen.) |
K (Tippfehler korrigiert.) |
||
(10 dazwischenliegende Versionen von 3 Benutzern werden nicht angezeigt) | |||
Zeile 1: | Zeile 1: | ||
− | |||
− | |||
= glTexEnv = | = glTexEnv = | ||
− | + | ||
+ | |||
== Name == | == Name == | ||
'''glTexEnvf''', '''glTexEnvi''', '''glTexEnvfv''', '''glTexEnviv''' - Setzt Parameter für das Textur-Environment | '''glTexEnvf''', '''glTexEnvi''', '''glTexEnvfv''', '''glTexEnviv''' - Setzt Parameter für das Textur-Environment | ||
− | + | ||
+ | |||
+ | |||
== Delphi-Spezifikation == | == Delphi-Spezifikation == | ||
− | procedure '''glTexEnvf'''(''target'' : GLenum; ''pname'' : GLenum; ''param'' : GLfloat) | + | procedure '''glTexEnvf'''(''target'' : GLenum; ''pname'' : GLenum; ''param'' : GLfloat); |
− | procedure '''glTexEnvi'''(''target'' : GLenum; ''pname'' : GLenum; ''param'' : GLint) | + | procedure '''glTexEnvi'''(''target'' : GLenum; ''pname'' : GLenum; ''param'' : GLint); |
+ | |||
− | |||
== Parameter == | == Parameter == | ||
Zeile 26: | Zeile 27: | ||
|} | |} | ||
− | + | ||
== Delphi-Spezifikation == | == Delphi-Spezifikation == | ||
Zeile 32: | Zeile 33: | ||
procedure '''glTexEnviv'''(''target'' : GLenum; ''pname'' : GLenum; '''const''' ''params'' : ^GLint) | procedure '''glTexEnviv'''(''target'' : GLenum; ''pname'' : GLenum; '''const''' ''params'' : ^GLint) | ||
− | + | ||
== Parameter == | == Parameter == | ||
Zeile 47: | Zeile 48: | ||
|} | |} | ||
− | |||
− | == 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. | + | == 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'''. | + | |
− | + | 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 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. <br> | 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. <br> | ||
<br><br> | <br><br> | ||
<br> | <br> | ||
− | + | {| {{Prettytable_B1}} | |
− | |||
− | |||
− | {| {{ | ||
! rowspan="2" | Base internal<br>format | ! rowspan="2" | Base internal<br>format | ||
− | |||
|- | |- | ||
− | | GL_MODULATE | + | | GL_MODULATE |
| GL_DECAL | | GL_DECAL | ||
| GL_BLEND | | GL_BLEND | ||
Zeile 73: | Zeile 70: | ||
|- | |- | ||
! GL_ALPHA | ! GL_ALPHA | ||
− | | | + | | [[Bild:C_v_ist_C_f.png]]<br>[[Bild:A_v_ist_A_f_A_t.png]] |
− | |||
| undefined | | undefined | ||
− | | | + | | [[Bild:C_v_ist_C_f.png]]<br>[[Bild:A_v_ist_A_f.png]] |
− | + | | [[Bild:C_v_ist_C_f.png]]<br>[[Bild:A_v_ist_A_t.png]] | |
− | | | ||
− | |||
|- | |- | ||
! GL_LUMINANCE<br>1 | ! GL_LUMINANCE<br>1 | ||
− | | | + | | [[Bild:C_v_ist_L_t_C_f.png]]<br>[[Bild:A_v_ist_A_f.png]] |
− | |||
− | |||
− | |||
| undefined | | undefined | ||
− | | | + | | [[Bild:C_v_ist_(1-L_t)C_f-L_t_C_c.png]]<br>[[Bild:A_v_ist_A_f.png]] |
− | | | + | | [[Bild:C_v_ist_L_t.png]]<br>[[Bild:A_v_ist_A_f.png]] |
|- | |- | ||
! GL_LUMINANCE_ALPHA<br>2 | ! GL_LUMINANCE_ALPHA<br>2 | ||
− | | | + | | [[Bild:C_v_ist_L_t_C_f.png]]<br>[[Bild:A_v_ist_A_f_A_t.png]] |
| undefined | | undefined | ||
− | | | + | | [[Bild:C_v_ist_(1-L_t)C_f-L_t_C_c.png]]<br>[[Bild:A_v_ist_A_f_A_t.png]] |
− | | | + | | [[Bild:C_v_ist_L_t.png]]<br>[[Bild:A_v_ist_A_t.png]] |
|- | |- | ||
! GL_INTENSITY | ! GL_INTENSITY | ||
− | | | + | | [[Bild:C_v_ist_C_f_I_t.png]]<br>[[Bild:A_v_ist_A_f_I_t.png]] |
| undefined | | undefined | ||
− | | | + | | [[Bild:C_v_ist_(1-I_t)C_f-I_t_C_c.png]]<br>[[Bild:A_V_ist_(1-I_t)A_f-I_t_A_c.png]] |
− | | | + | | [[Bild:C_v_ist_I_t.png]]<br>[[Bild:A_v_ist_I_t.png]] |
|- | |- | ||
! GL_RGB<br>3 | ! GL_RGB<br>3 | ||
− | | | + | | [[Bild:C_v_ist_C_t_C_f.png]]<br>[[Bild:A_v_ist_A_f.png]] |
− | | | + | | [[Bild:C_v_ist_C_t.png]]<br>[[Bild:A_v_ist_A_f.png]] |
− | | | + | | [[Bild:C_v_ist_(1-C_t)C_f-C_t_C_c.png]]<br>[[Bild:A_v_ist_A_f.png]] |
− | | | + | | [[Bild:C_v_ist_C_t.png]]<br>[[Bild:A_v_ist_A_f.png]] |
|- | |- | ||
! GL_RGBA<br>4 | ! GL_RGBA<br>4 | ||
− | | | + | | [[Bild:C_v_ist_C_t_C_f.png]]<br>[[Bild:A_v_ist_A_f_A_t.png]] |
− | | | + | | [[Bild:C_v_ist_(1-A_t)C_f-A_t_C_t.png]]<br>[[Bild:A_v_ist_A_f.png]] |
− | | | + | | [[Bild:C_v_ist_(1-C_t)C_f-C_t_C_c.png]]<br>[[Bild:A_v_ist_A_f_A_t.png]] |
− | | | + | | [[Bild:C_v_ist_C_t.png]] |
|} | |} | ||
− | + | ||
+ | |||
+ | |||
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. | 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). | 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 == | == Hinweise == | ||
− | '''GL_REPLACE''' ist nur verfügbar, wenn die OpenGL-Version gleich oder höher als 1.1 ist. | + | '''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. | 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. | ||
− | + | ||
Zeile 132: | Zeile 125: | ||
Folgende Erweiterungen hat die Funktion erfahren: | Folgende Erweiterungen hat die Funktion erfahren: | ||
=== Ab OpenGL Version 1.2.1 === | === Ab OpenGL Version 1.2.1 === | ||
− | Wenn mehrere [[Texture Stage]]s durch [[ | + | Wenn mehrere [[Texture Stage]]s durch [[GL_ARB_multitexture]] verwendet werden, so kann für jede [[Texture Stage]] die TexEnv-Funktion extra angegeben werden. |
=== Ab OpenGL Version 1.3 === | === 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. | 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 == | == 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_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. | '''GL_INVALID_OPERATION''' wird generiert, wenn glTexEnv innerhalb eines [[glBegin]]-[[glEnd]] Blocks aufgerufen wird. | ||
− | + | ||
== Zugehörige Wertrückgaben == | == Zugehörige Wertrückgaben == | ||
[[glGetTexEnv]] | [[glGetTexEnv]] | ||
− | + | ||
== Siehe auch == | == Siehe auch == | ||
[[glCopyPixels]], [[glCopyTexImage1D]], [[glCopyTexImage2D]], [[glCopyTexSubImage1D]], [[glCopyTexSubImage2D]], [[glTexImage1D]], [[glTexImage2D]], [[glTexParameter]], [[glTexSubImage1D]], [[glTexSubImage2D]] | [[glCopyPixels]], [[glCopyTexImage1D]], [[glCopyTexImage2D]], [[glCopyTexSubImage1D]], [[glCopyTexSubImage2D]], [[glTexImage1D]], [[glTexImage2D]], [[glTexParameter]], [[glTexSubImage1D]], [[glTexSubImage2D]] | ||
− | + | ||
+ | |||
[[Kategorie:GL|TexEnv]] | [[Kategorie:GL|TexEnv]] | ||
+ | [[Kategorie:GL1.0]] |
Aktuelle Version vom 17. August 2008, 05:09 Uhr
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.
Base internal format | ||||
---|---|---|---|---|
GL_MODULATE | GL_DECAL | GL_BLEND | GL_REPLACE | |
GL_ALPHA | |
undefined | |
|
GL_LUMINANCE 1 |
|
undefined | |
|
GL_LUMINANCE_ALPHA 2 |
|
undefined | |
|
GL_INTENSITY | |
undefined | |
|
GL_RGB 3 |
|
|
|
|
GL_RGBA 4 |
|
|
|
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_multitexture 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