glTexEnv: Unterschied zwischen den Versionen

Aus DGL Wiki
Wechseln zu: Navigation, Suche
(Offline genommen.)
K (Tippfehler korrigiert.)
 
(10 dazwischenliegende Versionen von 3 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
{{Unvollständig}}
 
{{Offline}}
 
 
= glTexEnv =
 
= glTexEnv =
  
<br>
+
 
 +
 
 
== Name ==
 
== Name ==
 
'''glTexEnvf''', '''glTexEnvi''', '''glTexEnvfv''', '''glTexEnviv''' - Setzt Parameter für das Textur-Environment
 
'''glTexEnvf''', '''glTexEnvi''', '''glTexEnvfv''', '''glTexEnviv''' - Setzt Parameter für das Textur-Environment
<br>
+
 
 +
 
 +
 
 
== Delphi-Spezifikation ==
 
== Delphi-Spezifikation ==
  procedure '''glTexEnvf'''(''target'' : GLenum; ''pname'' : GLenum; ''param'' : GLfloat) <br>
+
  procedure '''glTexEnvf'''(''target'' : GLenum; ''pname'' : GLenum; ''param'' : GLfloat);
  procedure '''glTexEnvi'''(''target'' : GLenum; ''pname'' : GLenum; ''param'' : GLint)
+
  procedure '''glTexEnvi'''(''target'' : GLenum; ''pname'' : GLenum; ''param'' : GLint);
 +
 
  
<br>
 
  
 
== Parameter ==
 
== Parameter ==
Zeile 26: Zeile 27:
 
|}
 
|}
  
<br>
+
 
  
 
== 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)
  
<br>
+
 
  
 
== Parameter ==
 
== Parameter ==
Zeile 47: Zeile 48:
 
|}
 
|}
  
<br>
 
  
== 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.<br>
+
== Beschreibung ==
<br>
+
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'''.<br>
+
 
<br>
+
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.<br>
+
 
<br>
+
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>
  
'''Tabelle unter  [http://www.opengl.org/documentation/specs/man_pages/hardcopy/GL/html/gl/texenv.html diesem Link] so ähnlich wie folgende Tabelle gestalten:'''
+
{| {{Prettytable_B1}}
[[Bild: http://www.mevis.de/opengl/glTexEnv.f1.gif]]
 
 
 
{| {{Prettytable}}
 
 
! rowspan="2" | Base internal<br>format
 
! rowspan="2" | Base internal<br>format
| colspan="4" | Texture functions
 
 
|-
 
|-
| GL_MODULATE  
+
| GL_MODULATE
 
| GL_DECAL
 
| GL_DECAL
 
| GL_BLEND
 
| GL_BLEND
Zeile 73: Zeile 70:
 
|-
 
|-
 
! GL_ALPHA
 
! GL_ALPHA
| C =C<br>
+
| [[Bild:C_v_ist_C_f.png]]<br>[[Bild:A_v_ist_A_f_A_t.png]]
A =A A
 
 
| undefined
 
| undefined
| C =C<br>
+
| [[Bild:C_v_ist_C_f.png]]<br>[[Bild:A_v_ist_A_f.png]]
Av=Af
+
| [[Bild:C_v_ist_C_f.png]]<br>[[Bild:A_v_ist_A_t.png]]
| C =C<br>
 
Av=Af
 
 
|-
 
|-
 
! GL_LUMINANCE<br>1
 
! GL_LUMINANCE<br>1
| C =L C<br>
+
| [[Bild:C_v_ist_L_t_C_f.png]]<br>[[Bild:A_v_ist_A_f.png]]
v  t f<br>
 
<br>
 
A =A
 
 
| undefined
 
| undefined
| C =(1-L )C<br>  v +L  Ct  f<br>        t c<br><br>A =A
+
| [[Bild:C_v_ist_(1-L_t)C_f-L_t_C_c.png]]<br>[[Bild:A_v_ist_A_f.png]]
| C<sub>v</sub> =L<sub>t</sub><br>A =A
+
| [[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
| C =L C<br>v  t f<br><br>A =A A
+
| [[Bild:C_v_ist_L_t_C_f.png]]<br>[[Bild:A_v_ist_A_f_A_t.png]]
 
| undefined
 
| undefined
| C =(1-L )C<br> v  +L C  f<br>     t c<br>A =A A
+
| [[Bild:C_v_ist_(1-L_t)C_f-L_t_C_c.png]]<br>[[Bild:A_v_ist_A_f_A_t.png]]
| C =L<br> v  t<br><br> A =A
+
| [[Bild:C_v_ist_L_t.png]]<br>[[Bild:A_v_ist_A_t.png]]
 
|-
 
|-
 
! GL_INTENSITY
 
! GL_INTENSITY
| C =C I<br> v  f t<br><br>A =A I<br> v  f t
+
| [[Bild:C_v_ist_C_f_I_t.png]]<br>[[Bild:A_v_ist_A_f_I_t.png]]
 
| undefined
 
| undefined
| C =(1-I )C<br> v +I Ct  f<br>    t c<br>A =(1-I )A<br> v +I At  f
+
| [[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]]
| C =I<br> v  t<br><br>A =I<br> v  t
+
| [[Bild:C_v_ist_I_t.png]]<br>[[Bild:A_v_ist_I_t.png]]
 
|-
 
|-
 
! GL_RGB<br>3
 
! GL_RGB<br>3
| C =C C<br> v  t f<br><br>A =A
+
| [[Bild:C_v_ist_C_t_C_f.png]]<br>[[Bild:A_v_ist_A_f.png]]
| C =C<br> v  t<br><br>A =A
+
| [[Bild:C_v_ist_C_t.png]]<br>[[Bild:A_v_ist_A_f.png]]
| C =(1-C  C<br> v  +C C) f<br>t c<br>A =A
+
| [[Bild:C_v_ist_(1-C_t)C_f-C_t_C_c.png]]<br>[[Bild:A_v_ist_A_f.png]]
| C =C<br>v  t<br><br>A =A
+
| [[Bild:C_v_ist_C_t.png]]<br>[[Bild:A_v_ist_A_f.png]]
 
|-
 
|-
 
! GL_RGBA<br>4
 
! GL_RGBA<br>4
| C =C C<br> v  t f<br><br>A =A A
+
| [[Bild:C_v_ist_C_t_C_f.png]]<br>[[Bild:A_v_ist_A_f_A_t.png]]
| C =(1-A )C<br> v +A Ct  f<br> t t<br>A =A
+
| [[Bild:C_v_ist_(1-A_t)C_f-A_t_C_t.png]]<br>[[Bild:A_v_ist_A_f.png]]
| C =(1-C  C<br> v  +C C) f<br> t c<br>A =A A
+
| [[Bild:C_v_ist_(1-C_t)C_f-C_t_C_c.png]]<br>[[Bild:A_v_ist_A_f_A_t.png]]
| C =C<br>v  t<br><br>A =A
+
| [[Bild:C_v_ist_C_t.png]]
 
|}
 
|}
  
<br><br>
+
 
 +
 
 +
 
 
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).
 
 
<br>
+
 
  
 
== Hinweise ==
 
== Hinweise ==
'''GL_REPLACE''' ist nur verfügbar, wenn die OpenGL-Version gleich oder höher als 1.1 ist.<br>
+
'''GL_REPLACE''' ist nur verfügbar, wenn die OpenGL-Version gleich oder höher als 1.1 ist.
<br>
+
 
 
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.
<br>
+
 
  
  
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 [[GL_ARB_multitexturing]] verwendet werden, so kann für jede [[Texture Stage]] die TexEnv-Funktion extra angegeben werden.
+
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.
<br>
+
 
 +
 
  
 
== 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. <br>
+
'''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.  
  
<br>
+
 
  
 
==  Zugehörige Wertrückgaben ==
 
==  Zugehörige Wertrückgaben ==
 
[[glGetTexEnv]]
 
[[glGetTexEnv]]
  
<br>
+
 
  
 
== Siehe auch ==
 
== Siehe auch ==
 
[[glCopyPixels]], [[glCopyTexImage1D]], [[glCopyTexImage2D]], [[glCopyTexSubImage1D]], [[glCopyTexSubImage2D]], [[glTexImage1D]], [[glTexImage2D]], [[glTexParameter]], [[glTexSubImage1D]], [[glTexSubImage2D]]
 
[[glCopyPixels]], [[glCopyTexImage1D]], [[glCopyTexImage2D]], [[glCopyTexSubImage1D]], [[glCopyTexSubImage2D]], [[glTexImage1D]], [[glTexImage2D]], [[glTexParameter]], [[glTexSubImage1D]], [[glTexSubImage2D]]
  
<br>
+
 
 +
 
 
[[Kategorie:GL|TexEnv]]
 
[[Kategorie:GL|TexEnv]]
 +
[[Kategorie:GL1.0]]

Aktuelle Version vom 17. August 2008, 05:09 Uhr

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 C v ist C f.png
A v ist A f A t.png
undefined C v ist C f.png
A v ist A f.png
C v ist C f.png
A v ist A t.png
GL_LUMINANCE
1
C v ist L t C f.png
A v ist A f.png
undefined C v ist (1-L t)C f-L t C c.png
A v ist A f.png
C v ist L t.png
A v ist A f.png
GL_LUMINANCE_ALPHA
2
C v ist L t C f.png
A v ist A f A t.png
undefined C v ist (1-L t)C f-L t C c.png
A v ist A f A t.png
C v ist L t.png
A v ist A t.png
GL_INTENSITY C v ist C f I t.png
A v ist A f I t.png
undefined C v ist (1-I t)C f-I t C c.png
A V ist (1-I t)A f-I t A c.png
C v ist I t.png
A v ist I t.png
GL_RGB
3
C v ist C t C f.png
A v ist A f.png
C v ist C t.png
A v ist A f.png
C v ist (1-C t)C f-C t C c.png
A v ist A f.png
C v ist C t.png
A v ist A f.png
GL_RGBA
4
C v ist C t C f.png
A v ist A f A t.png
C v ist (1-A t)C f-A t C t.png
A v ist A f.png
C v ist (1-C t)C f-C t C c.png
A v ist A f A t.png
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.

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

glGetTexEnv


Siehe auch

glCopyPixels, glCopyTexImage1D, glCopyTexImage2D, glCopyTexSubImage1D, glCopyTexSubImage2D, glTexImage1D, glTexImage2D, glTexParameter, glTexSubImage1D, glTexSubImage2D