glTexImage: Unterschied zwischen den Versionen

Aus DGL Wiki
Wechseln zu: Navigation, Suche
()
(Der Seiteninhalt wurde durch einen anderen Text ersetzt: '{{Hinweis|Dieser Artikel wurde wieder in glTexImage1D, glTexImage2D und glTexImage3D aufgeteilt.}}')
 
(20 dazwischenliegende Versionen von 9 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
{{Unvollständig}}
+
{{Hinweis|Dieser Artikel wurde wieder in [[glTexImage1D]], [[glTexImage2D]] und [[glTexImage3D]] aufgeteilt.}}
= glTexImage =
 
 
 
<br>
 
== Name ==
 
'''glTexImage''' - Einstellungen zum Texturen zeichnen
 
 
 
<br>
 
== Spezifikation ==
 
procedure '''glTexImage1D'''(''target'': TGLenum; ''level'': TGLint; ''internalformat'': TGLint; ''width'': TGLsizei;
 
                        ''border'': TGLint; ''format'': TGLenum; ''_type'': TGLenum; '''const''' ''pixels'': PGLvoid); <br>
 
procedure '''glTexImage2D'''(''target'': TGLenum; ''level'': TGLint; ''internalformat'': TGLint; ''width'': TGLsizei;
 
                        ''height'': TGLsizei; ''border'': TGLint; ''format'': TGLenum; ''_type'': TGLenum;
 
                        '''const''' ''pixels'': PGLvoid); <br>
 
procedure '''glTexImage3D'''(''target'': TGLenum; ''level'': TGLint; ''internalformat'': TGLint; ''width'': TGLsizei;
 
                        ''height'': TGLsizei; ''depth'': TGLsizei; ''border'': TGLint; ''format'': TGLenum;
 
                        ''_type'': TGLenum; '''const''' ''pixels'': PGLvoid); <br>
 
 
 
== Parameter ==
 
<table border=1 rules=all>
 
<tr>
 
<td>''target''</td>
 
<td>Gibt an, welche Texture erreicht werden soll.  '''GL_TEXTURE_2D''' wird akzeptiert.</td>
 
</tr>
 
<tr>
 
<td>''level''</td>
 
<td>Gibt den Detailgrad für das gewünschte Bild an. <br>
 
''level'' '''0''' ist das Basisbild. Level n ist die n-te Mipmap reduzierung des Bildes.</td>
 
</tr>
 
<tr>
 
<td>''components''</td>
 
<td>'''1''' - für '''R''' || '''2''' für '''R''' und '''A''' || '''3''' für '''RGB''' || '''4''' für '''RGBA'''</td>
 
</tr>
 
<tr>
 
<td>''width'',</td>
 
<td>Breite = Anzahl der Pixel pro Zeile <br> muss als Wert 2^n (+ 2 * (border) ) für n Integerwerte haben.</td>
 
</tr>
 
<tr>
 
<td>''height'',</td>
 
<td>Höhe = Anzahl der Zeilen <br> muss als Wert 2^n (+ 2 * (border) ) für n Integerwerte haben</td>
 
</tr>
 
<tr>
 
<td>''depth'',</td>
 
<td>Tiefe = Anzahl der "Scheiben" <br> muss als Wert 2^n (+ 2 * (border) ) für n Integerwerte haben</td>
 
</tr>
 
<tr>
 
<td>''border'',</td>
 
<td>Breite des Rahmens || '''0''' oder '''1'''</td>
 
</tr>
 
<tr>
 
<td>''format''</td>
 
<td>Bestimmt das Format der Pixeldaten. Folgende symbolische Werte werden akzeptiert: <br>
 
'''GL_COLOR_INDEX, GL_STENCIL_INDEX, GL_DEPTH_COMPONENT, GL_RED, GL_GREEN, GL_BLUE, GL_ALPHA, GL_RGB, GL_RGBA, GL_LUMINANCE,''' und '''GL_LUMINANCE_ALPHA'''</td>
 
</tr>
 
<tr>
 
<td>''_type''</td>
 
<td>Bestimmt den Pixeltyp für den Inhalt von ''pixels''. Folgende Typen werden unterstützt:<br>
 
'''GL_UNSIGNED_BYTE, GL_BYTE, GL_UNSIGNED_SHORT, GL_SHORT, GL_UNSIGNED_INT, GL_INT, GL_FLOAT, GL_BITMAP'''</td>
 
</tr>
 
<tr>
 
<td>''pixels''</td>
 
<td>Die Texture-Image Daten vom Typ, der in ''format'' angegeben wurde ( Array wo die Pixel gespeichert sind ) </td>
 
</tr>
 
</table>
 
 
 
<br>
 
 
 
== Beschreibung ==
 
Texturierung bildet einen bestimmten Teil eines Texturbildes auf alle [[Primitive|Grafikprimitiven]] ab für die Texturierung aktiviert ist.
 
 
 
Je nachdem welche Texturart aktiviert werden soll ruft man [[glEnable]] mit den Parametern '''GL_TEXTURE_1D, GL_TEXTURE_2D''' oder '''GL_TEXTURE_3D''' auf. Die Deaktivierung erfolgt entsprechend mittels [[glDisable]].
 
 
 
Die Texturbilder werden durch die Funktionen '''glTexImage1D, glTexImage2D''' bzw. '''glTexImage3D''' definiert. Die Argumente der Funktionen beschreiben die Eigenschaften des Texturbildes wie z.B. Breite, Höhe, Tiefe (je nach Dimension), Breite des Randes, [[LOD]]-Nummer (siehe [[glTexParameter]]) und Anzahl der unterstützen Farbkomponenten. Die letzten 3 Argumente beschreiben wie das Bild im Speicher abgelegt wird. Die 3 Argumente sind identisch mit denen, die das Pixelformat bei [[glDrawPixels]] steuern.
 
 
 
Die Daten werden aus ''pixels'' als Sequenz von vorzeichenlosen oder -behafteten Byte-, Shortint- oder Longint-Werten oder als Fließkommazahlen einfacher Genauigkeit gelesen. Der Typ wird über ''type'' festgelegt. <br>
 
Die ausgelesen Werte werden abhängig von ''format'' gruppiert zu Gruppen mit je einem, zwei, drei oder vier Werten. Diese Gruppen entsprechen einem Element.
 
 
 
Wenn ''type'' gleich '''GL_BITMAP''' ist, werden die Daten als Folge (orig.: "String") von vorzeichenlosen Bytewerten angesehen (wobei ''format'' '''GL_COLOR_INDEX''' sein muss). Jedes Byte des Datenblocks wird als Gruppe von 8 1-Bit Elementen interpretiert. Die Reihenfolge der Bits wird durch '''GL_UNPACK_LSB_FIRST''' (siehe [[glPixelStore]]) festgelegt.
 
 
 
 
 
Der ''format'' Parameter bestimmt die Zusammenstellung der Elemente aus ''pixels''. Folgende 9 möglichen Werte kann ''format'' haben:
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
<br>
 
 
 
== Hinweise ==
 
''glTexImage3D'' war bis zu OpenGL 1.2 noch eine Erweiterung. Deswegen bei manchen Chipsätzen nur als [[glTexImage3DEXT]] verfügbar.
 
 
 
<br>
 
 
 
== Fehlermeldungen ==
 
 
 
GL_INVALID_ENUM wird generiert wenn ''target'' kein GL_TEXTURE_2D ist.<br>
 
 
 
GL_INVALID_ENUM wird generiert wenn falsches ''format'' angegeben wurde. <br>
 
 
 
GL_INVALID_ENUM wird generiert wenn falscher ''type'' angegeben wurde. <br>
 
 
 
GL_INVALID_ENUM wird generiert wenn GL_BITMAP als ''type'' und '''kein''' GL_COLOR_INDEX als ''format'' angegeben wurde. <br>
 
 
 
GL_INVALID_VALUE wird generiert wenn ''level'' kleiner 0 oder größer ld(max) ist, wobei max der Rückgabewert von '''GL_MAX_TEXTURE_SIZE''' ist. (ld = Logarithmus Dualis = Basis 2). <br>
 
 
 
GL_INVALID_VALUE wird generiert wenn für ''components'' was anderes als ''1'', ''2'', ''3'' oder ''4'' angegeben wurde. <br>
 
 
 
GL_INVALID_VALUE wird generiert wenn ''width'' oder ''height'' kleiner als 0 oder größer als 2 + GL_MAX_TEXTURE_SIZE ist, oder die Bedingung  2^k + 2 * (border) (k=Integerwerte) nich erfüllt. <br>
 
 
 
GL_INVALID_VALUE wenn ''border'' nicht ''0'' oder ''1'' ist. <br>
 
 
 
GL_INVALID_OPERATION wird generiert wenn ''glTexImage2D'' in einem glBegin- und glEnd-Block ausgeführt wird. <br>
 
 
 
 
 
<br>
 
 
 
== Siehe auch ==
 
[[glTexEnv]], [[glTexGen]], [[glTexImage3DEXT]], [[glTexSubImage1D]], [[glTexSubImage2D]], [[glTexSubImage3D]], [[glTexParameter]], [[glTexCoord]]
 
 
 
[[Kategorie:GL|TexImage]]
 

Aktuelle Version vom 29. April 2009, 11:14 Uhr

Info DGL.png Dieser Artikel wurde wieder in glTexImage1D, glTexImage2D und glTexImage3D aufgeteilt.