glTexParameter: Unterschied zwischen den Versionen
Flash (Diskussion | Beiträge) K (→Beschreibung) |
(→Hinweise) |
||
Zeile 127: | Zeile 127: | ||
== Hinweise == | == Hinweise == | ||
<b><i> | <b><i> | ||
+ | Angenommen Texturen sind aktiviert(durch Aufruf von glEnable mit dem Argument GL_TEXTURE_1D oder GL_TEXTURE_2D) und GL_TEXTURE_MIN_FILTER ist auf eine der Funktionen gesetzt, die eine Mipmap benötigen. Wenn entweder die Ausmaße des aktuellen Texturbildes(zuvor gesetzt durch Aufruf von glTexImage1D oder glTexImage2D) nicht den Anforderungen für Mipmaps genügen, weniger Texturbilder als nötig definiert sind, oder das Texturenset abweichende Anzahl von Texturkomponenten hat, wirkt sich das aus als ob Texturmapping deaktiviert wäre. | ||
+ | |||
+ | Lineare Filterung greift nur in 2D-Texturen auf die vier nächsten Texturelemente zu. Bei 1D-Texturen greift Lineare Filterung auf die zwei nächsten Texturelemente zu. | ||
+ | |||
Suppose texturing is enabled (by calling glEnable with argument GL_TEXTURE_1D or GL_TEXTURE_2D) and GL_TEXTURE_MIN_FILTER is set to one of the functions that requires a mipmap. If either the dimensions of the texture images currently defined (with previous calls to glTexImage1D or glTexImage2D) do not follow the proper sequence for mipmaps, or there are fewer texture images defined than are needed, or the set of texture images have differing numbers of texture components, then it is as if texture mapping were disabled. | Suppose texturing is enabled (by calling glEnable with argument GL_TEXTURE_1D or GL_TEXTURE_2D) and GL_TEXTURE_MIN_FILTER is set to one of the functions that requires a mipmap. If either the dimensions of the texture images currently defined (with previous calls to glTexImage1D or glTexImage2D) do not follow the proper sequence for mipmaps, or there are fewer texture images defined than are needed, or the set of texture images have differing numbers of texture components, then it is as if texture mapping were disabled. | ||
Zeile 133: | Zeile 137: | ||
<br> | <br> | ||
+ | |||
== Fehlermeldungen == | == Fehlermeldungen == | ||
'''GL_INVALID_Enum''' wird generiert wenn ''target'' oder ''pname'' kein gültiger Wert übergeben wurde, oder wenn ''params'' einen definierten, konstanten Wert (basierend auf den Wert von ''pname'') erwartet und diesen nicht bekommt.<br> | '''GL_INVALID_Enum''' wird generiert wenn ''target'' oder ''pname'' kein gültiger Wert übergeben wurde, oder wenn ''params'' einen definierten, konstanten Wert (basierend auf den Wert von ''pname'') erwartet und diesen nicht bekommt.<br> |
Version vom 23. November 2004, 14:47 Uhr
(Mehr Informationen/weitere Artikel) {{{1}}} |
Inhaltsverzeichnis
glTexParameter
Name
glTexParameter Funktionen - setzen Textureigenschaften.
Delphi-Spezifikation
procedure glTexParameterf(target: TGLenum; pname: TGLenum; param: TGLfloat); procedure glTexParameteri(target: TGLenum; pname: TGLenum; param: TGLint);
Parameter
target | Bestimmt die Zieltextur welche GL_TEXTURE_1D, GL_TEXTURE_2D oder GL_TEXTURE_3D sein kann. |
pname | Bestimmt den symbolischen Namen eines Parameters der einen Einzelwert enthält. Folgende Werte werden akzeptiert: GL_TEXTURE_MIN_FILTER, GL_TEXTURE_MAG_FILTER, GL_TEXTURE_WRAP_S, oder GL_TEXTURE_WRAP_T. |
param | Enthält den Wert für pname. |
Delphi-Spezifikation
procedure glTexParameterfv(target: TGLenum; pname: TGLenum; const params: PGLfloat); procedure glTexParameteriv(target: TGLenum; pname: TGLenum; const params: PGLint);
Parameter
target | Bestimmt die Zieltextur welche GL_TEXTURE_1D, GL_TEXTURE_2D oder GL_TEXTURE_3D sein kann. |
pname | Bestimmt den symbolischen Namen eines Parameters der einen Einzelwert enthält. Folgende Werte werden akzeptiert: GL_TEXTURE_MIN_FILTER, GL_TEXTURE_MAG_FILTER, GL_TEXTURE_WRAP_S, GL_TEXTURE_WRAP_T oder GL_TEXTURE_BORDER_COLOR. |
params | Ist ein Zeiger auf ein Feld welches die oder den Wert für pname enthält. |
Beschreibung
Texturmapping ist eine Technik die Bilder (oder Ausschnitte von Bildern) auf die Oberfläche von Objekten "aufklebt". Man kann sich dies tatsächlich so vorstellen wie das aufkleben von Tapeten an Wände. Das Bild wir im Texturenraum, welcher über ein (s,t) Koordinatensystem verfügt, erstellt. Eine Textur ist ein ein-, zwei- und mittlerweile auch dreidimensionales Bild inklusive einiger Parameter die bestimmen wie Texturen/Texturausschnitte aus dem Bild gewonnen werden sollen.
Mit der Funktion glTexParameter kann man den mit pname ausgewiesenen Parametern die Werte zuweisen, die man über params spezifiziert hat. target wiederum definiert den Typ der Zieltextur. Als Werte werden GL_TEXTURE_1D, GL_TEXTURE_2D oder GL_TEXTURE_3D akzeptiert. Die folgenden symbolischen Werte kann man dem Parameter pname zuweisen:
GL_TEXTURE_MIN_FILTER
- The texture minifying function is used whenever the pixel being textured maps to an area greater than one texture element. There are six defined minifying functions. Two of them use the nearest one or nearest four texture elements to compute the texture value. The other four use mipmaps.
- A mipmap is an ordered set of arrays representing the same image at progressively lower resolutions. If the texture has dimensions 2^nx2^m there are max(n, m) + 1 mipmaps. The first mipmap is the original texture, with dimensions 2^nx2^m. Each subsequent mipmap has dimensions 2^k (-1) x2^l (-1) where 2^kx2^l are the dimensions of the previous mipmap, until either k = 0 or l = 0. At that point, subsequent mipmaps have dimension 1x2^l-1 or 2^k-1x1 until the final mipmap, which has dimension 1x1. Mipmaps are defined using glTexImage1D or glTexImage2D with the level-of-detail argument indicating the order of the mipmaps. Level 0 is the original texture; level bold max(n, m) is the final 1x1 mipmap.
- params liefert folgende Funktionen zur Verkleinerung von Texturen. Dies wären:
- GL_NEAREST
- Liefert den Wert des Texturelements, welches am nächsten (in Manhattendistanz) zum Zentrum des zu texturierenden Pixels liegt.
- GL_LINEAR
- Returns the weighted average of the four texture elements that are closest to the center of the pixel being textured. These can include border texture elements, depending on the values of GL_TEXTURE_WRAP_S and GL_TEXTURE_WRAP_T, and on the exact mapping.
- GL_NEAREST_MIPMAP_NEAREST
- Chooses the mipmap that most closely matches the size of the pixel being textured and uses the GL_NEAREST criterion (the texture element nearest to the center of the pixel) to produce a texture value.
- GL_LINEAR_MIPMAP_NEAREST
- Chooses the mipmap that most closely matches the size of the pixel being textured and uses the GL_LINEAR criterion (a weighted average of the four texture elements that are closest to the center of the pixel) to produce a texture value.
- GL_NEAREST_MIPMAP_LINEAR
- Chooses the two mipmaps that most closely match the size of the pixel being textured and uses the GL_NEAREST criterion (the texture element nearest to the center of the pixel) to produce a texture value from each mipmap. The final texture value is a weighted average of those two values.
- GL_LINEAR_MIPMAP_LINEAR
- Chooses the two mipmaps that most closely match the size of the pixel being textured and uses the GL_LINEAR criterion (a weighted average of the four texture elements that are closest to the center of the pixel) to produce a texture value from each mipmap. The final texture value is a weighted average of those two values.
- As more texture elements are sampled in the minification process, fewer aliasing artifacts will be apparent. While the GL_NEAREST and GL_LINEAR minification functions can be faster than the other four, they sample only one or four texture elements to determine the texture value of the pixel being rendered and can produce moire patterns or ragged transitions. The default value of GL_TEXTURE_MIN_FILTER is GL_NEAREST_MIPMAP_LINEAR.
GL_TEXTURE_MAG_FILTER
- Die Textur-Vergrößerungsfunktion wird benutzt wenn das zu texturierenden Pixel durch eine Fläche, die größer oder gleich einem Texturelement ist, texturiert werden soll.
- Die Funktion kann dabei auf einen der folgenden Werte gesetzt werden:
- GL_NEAREST
- Liefert den Wert des Texturelements, welches am nächsten (in Manhattendistanz) zum Zentrum des zu texturierenden Pixels liegt.
- GL_LINEAR
- Returns the weighted average of the four texture elements that are closest to the center of the pixel being textured. These can include border texture elements, depending on the values of GL_TEXTURE_WRAP_S and GL_TEXTURE_WRAP_T, and on the exact mapping.
- GL_NEAREST is generally faster than GL_LINEAR, but it can produce textured images with sharper edges because the transition between texture elements is not as smooth. The default value of GL_TEXTURE_MAG_FILTER is GL_LINEAR.
GL_TEXTURE_WRAP_S
- Sets the wrap parameter for texture coordinate s to either GL_CLAMP or GL_REPEAT. GL_CLAMP causes s coordinates to be clamped to the range [0,1] and is useful for preventing wrapping artifacts when mapping a single image onto an object. GL_REPEAT causes the integer part of the s coordinate to be ignored; the GL uses only the fractional part, thereby creating a repeating pattern. Border texture elements are accessed only if wrapping is set to GL_CLAMP. Initially, GL_TEXTURE_WRAP_S is set to GL_REPEAT.
GL_TEXTURE_WRAP_T
- Sets the wrap parameter for texture coordinate t to either GL_CLAMP or GL_REPEAT. See the discussion under GL_TEXTURE_WRAP_S. Initially, GL_TEXTURE_WRAP_T is set to GL_REPEAT.
GL_TEXTURE_BORDER_COLOR
- Sets a border color. The params parameter contains four values that comprise the RGBA color of the texture border. Integer color components are interpreted linearly such that the most positive integer maps to 1.0, and the most negative integer maps to -1.0. The values are clamped to the range [0,1] when they are specified. Initially, the border color is (0, 0, 0, 0).
Hinweise
Angenommen Texturen sind aktiviert(durch Aufruf von glEnable mit dem Argument GL_TEXTURE_1D oder GL_TEXTURE_2D) und GL_TEXTURE_MIN_FILTER ist auf eine der Funktionen gesetzt, die eine Mipmap benötigen. Wenn entweder die Ausmaße des aktuellen Texturbildes(zuvor gesetzt durch Aufruf von glTexImage1D oder glTexImage2D) nicht den Anforderungen für Mipmaps genügen, weniger Texturbilder als nötig definiert sind, oder das Texturenset abweichende Anzahl von Texturkomponenten hat, wirkt sich das aus als ob Texturmapping deaktiviert wäre.
Lineare Filterung greift nur in 2D-Texturen auf die vier nächsten Texturelemente zu. Bei 1D-Texturen greift Lineare Filterung auf die zwei nächsten Texturelemente zu.
Suppose texturing is enabled (by calling glEnable with argument GL_TEXTURE_1D or GL_TEXTURE_2D) and GL_TEXTURE_MIN_FILTER is set to one of the functions that requires a mipmap. If either the dimensions of the texture images currently defined (with previous calls to glTexImage1D or glTexImage2D) do not follow the proper sequence for mipmaps, or there are fewer texture images defined than are needed, or the set of texture images have differing numbers of texture components, then it is as if texture mapping were disabled.
Linear filtering accesses the four nearest texture elements only in 2-D textures. In 1-D textures, linear filtering accesses the two nearest texture elements.
Fehlermeldungen
GL_INVALID_Enum wird generiert wenn target oder pname kein gültiger Wert übergeben wurde, oder wenn params einen definierten, konstanten Wert (basierend auf den Wert von pname) erwartet und diesen nicht bekommt.
GL_INVALID_OPERATION wird generiert wenn glTexParameter innerhalb eines glBegin-glEnd Blocks aufgerufen wird.
Zugehörige Wertrückgaben
glGetTexParameter
glGetTexLevelParameter