Freigeben über


glTexParameteriv-Funktion

Legt Texturparameter fest.

Syntax

void WINAPI glTexParameterfv(
         GLenum target,
         GLenum pname,
   const GLint  *params
);

Parameter

Ziel

Die Zieltextur, die entweder GL_TEXTURE_1D oder GL_TEXTURE_2D sein muss.

pname

Der symbolische Name eines einzelnen wertigen Texturparameters. Die folgenden Symbole werden in pname akzeptiert.

Wert Bedeutung
GL_TEXTURE_MIN_FILTER
Die Texturminierungsfunktion wird immer dann verwendet, wenn das zu strukturierende Pixel einem Bereich zugeordnet wird, der größer als ein Texturelement ist. Es gibt sechs definierte Minifizierungsfunktionen. Zwei von ihnen verwenden das nächste oder die nächsten vier Texturelemente, um den Texturwert zu berechnen. Die anderen vier verwenden mipmaps.
Eine mipmap ist ein geordneter Satz von Arrays, die dasselbe Bild bei schrittweise niedrigeren Auflösungen darstellen. Wenn die Textur dimensionen 2nx2m aufweist, gibt es max(n, m) + 1 mipmaps. Die erste mipmap ist die ursprüngliche Textur mit den Abmessungen 2nx2m. Jede nachfolgende mipmap hat Dimensionen 2k1x2l1, wobei 2kx 2l die Dimensionen der vorherigen mipmap sind, bis entweder k = 0 oder l = 0. Zu diesem Zeitpunkt haben nachfolgende mipmaps die Dimension 1x2l1oder 2k1x1 bis zur endgültigen mipmap, die dimension 1x1 hat. Mipmaps werden mithilfe von glTexImage1D oder glTexImage2D mit dem Argument Detailebene definiert, das die Reihenfolge der mipmaps angibt. Ebene 0 ist die ursprüngliche Textur; level bold max(n, m) ist die letzte 1x1 mipmap.
GL_TEXTURE_MAG_FILTER
Die Texturvergrößerungsfunktion wird verwendet, wenn das zu strukturierende Pixel einem Bereich zugeordnet wird, der kleiner oder gleich einem Texturelement ist. Die Texturvergrößerungsfunktion wird entweder auf GL_NEAREST oder GL_LINEAR festgelegt.
GL_TEXTURE_WRAP_S
Legt den Umbruchparameter für Texturkoordinaten auf GL_CLAMP oder GL_REPEAT fest. GL_CLAMP bewirkt, dass s-Koordinaten an den Bereich [0,1] geklemmt werden, und ist nützlich, um das Umschließen von Artefakten zu verhindern, wenn ein einzelnes Bild einem Objekt zugeordnet wird. GL_REPEAT bewirkt, dass der ganzzahlige Teil der s-Koordinate ignoriert wird; OpenGL verwendet nur den Bruchteil, wodurch ein sich wiederholendes Muster erstellt wird. Auf Elemente der Rahmentextur wird nur zugegriffen, wenn das Wrapping auf GL_CLAMP festgelegt ist. Zunächst ist GL_TEXTURE_WRAP_S auf GL_REPEAT festgelegt.
GL_TEXTURE_WRAP_T
Legt den Umbruchparameter für die Texturkoordinate t auf GL_CLAMP oder GL_REPEAT fest. Weitere Informationen finden Sie unter GL_TEXTURE_WRAP_S. Zunächst ist GL_TEXTURE_WRAP_T auf GL_REPEAT festgelegt.
GL_TEXTURE_BORDER_COLOR
Legt eine Rahmenfarbe fest. Der parameter params enthält vier Werte, die die RGBA-Farbe des Texturrahmens umfassen. Ganzzahlige Farbkomponenten werden linear so interpretiert, dass die positivsten ganzen Zahlen 1,0 und die negativsten ganzen Zahlen 1,0 zugeordnet werden. Die Werte werden an den Bereich [0,1] geklemmt, wenn sie angegeben werden. Zunächst ist die Rahmenfarbe (0, 0, 0, 0, 0).
GL_TEXTURE_PRIORITY
Gibt die Texturresidenzpriorität der aktuell gebundenen Textur an. Zulässige Werte liegen im Bereich [0, 1]. Weitere Informationen finden Sie unter glPrioritizeTextures und glBindTexture .

params

Ein Zeiger auf ein Array, in dem der Wert oder die Werte von pname gespeichert werden. Der Parameter params stellt eine Funktion zum Minimieren der Textur als eine der folgenden Funktionen bereit.

Wert Bedeutung
GL_NEAREST
Gibt den Wert des Texturelements zurück, das (in Manhattan Entfernung) dem Mittelpunkt des zu strukturierenden Pixels am nächsten ist.
GL_LINEAR
Gibt den gewichteten Durchschnitt der vier Texturelemente zurück, die dem Mittelpunkt des zu strukturierenden Pixels am nächsten sind. Dies können Rahmentexturelemente sein, abhängig von den Werten von GL_TEXTURE_WRAP_S, GL_TEXTURE_WRAP_T und der genauen Zuordnung. GL_NEAREST ist in der Regel schneller als GL_LINEAR, kann aber texturierte Bilder mit schärferen Kanten erzeugen, da der Übergang zwischen Texturelementen nicht so glatt ist. Der Standardwert von GL_TEXTURE_MAG_FILTER ist GL_LINEAR.
GL_NEAREST_MIPMAP_NEAREST
Wählt die mipmap aus, die der Größe des zu strukturierenden Pixels am ehesten entspricht, und verwendet das GL_NEAREST Kriterium (das Texturelement, das dem Mittelpunkt des Pixels am nächsten ist), um einen Texturwert zu erzeugen.
GL_LINEAR_MIPMAP_NEAREST
Wählt die Mipmap aus, die der Größe des zu strukturierenden Pixels am ehesten entspricht, und verwendet das GL_LINEAR Kriterium (ein gewichteter Durchschnitt der vier Texturelemente, die dem Mittelpunkt des Pixels am nächsten sind), um einen Texturwert zu erzeugen.
GL_NEAREST_MIPMAP_LINEAR
Wählt die beiden Mipmaps aus, die der Größe des zu strukturierenden Pixels am ehesten entsprechen, und verwendet das GL_NEAREST Kriterium (das Texturelement, das dem Pixelmittelpunkt am nächsten ist), um einen Texturwert aus jeder Mipmap zu erzeugen. Der endgültige Texturwert ist ein gewichteter Durchschnitt dieser beiden Werte.
GL_LINEAR_MIPMAP_LINEAR
Wählt die zwei Mipmaps aus, die der Größe des zu strukturierenden Pixels am ehesten entsprechen, und verwendet das GL_LINEAR Kriterium (ein gewichteter Durchschnitt der vier Texturelemente, die dem Pixelmittelpunkt am nächsten sind), um einen Texturwert aus jeder Mipmap zu erzeugen. Der endgültige Texturwert ist ein gewichteter Durchschnitt dieser beiden Werte.

Der Parameter params stellt eine Funktion zum Vergrößern der Textur als eine der folgenden Funktionen bereit.

Wert Bedeutung
GL_NEAREST
Gibt den Wert des Texturelements zurück, das (in Manhattan Entfernung) dem Mittelpunkt des zu strukturierenden Pixels am nächsten ist.
GL_LINEAR
Gibt den gewichteten Durchschnitt der vier Texturelemente zurück, die dem Mittelpunkt des zu strukturierenden Pixels am nächsten sind. Dies können Rahmentexturelemente sein, abhängig von den Werten von GL_TEXTURE_WRAP_S, GL_TEXTURE_WRAP_T und der genauen Zuordnung. GL_NEAREST ist in der Regel schneller als GL_LINEAR, kann aber texturierte Bilder mit schärferen Kanten erzeugen, da der Übergang zwischen Texturelementen nicht so glatt ist. Der Standardwert von GL_TEXTURE_MAG_FILTER ist GL_LINEAR.

Rückgabewert

Diese Funktion gibt keinen Wert zurück.

Fehlercodes

Die folgenden Fehlercodes können von der glGetError-Funktion abgerufen werden.

Name Bedeutung
GL_INVALID_ENUM
target oder pname war keiner der akzeptierten definierten Werte, oder wenn param einen definierten konstanten Wert (basierend auf dem Wert von pname) aufweisen sollte und nicht.
GL_INVALID_OPERATION
Die Funktion wurde zwischen einem Aufruf von glBegin und dem entsprechenden Aufruf von glEnd aufgerufen.

Bemerkungen

Die Texturzuordnung ist eine Technik, bei der ein Bild auf die Oberfläche eines Objekts angewendet wird, als wäre das Bild ein Decal- oder Cellophan-Schrumpfumbruch. Das Bild wird im Texturraum mit einem Koordinatensystem (s, t) erstellt. Eine Textur ist ein ein- oder zweidimensionales Bild und eine Reihe von Parametern, die bestimmen, wie Stichproben vom Bild abgeleitet werden.

Die glTexParameter-Funktion weist den Wert oder die Werte in Params dem als pname angegebenen Texturparameter zu. Der Zielparameter definiert die Zieltextur, entweder GL_TEXTURE_1D oder GL_TEXTURE_2D.

Wenn beim Minifizierungsprozess mehr Texturelemente stichprobeniert werden, werden weniger Aliasartefakte sichtbar. Während die GL_NEAREST- und GL_LINEAR-Minifizierungsfunktionen schneller sein können als die anderen vier, proben sie nur ein oder vier Texturelemente, um den Texturwert des gerenderten Pixels zu bestimmen, und können Moiremuster oder zerrungene Übergänge erzeugen. Der Standardwert von GL_TEXTURE_MIN_FILTER ist GL_NEAREST_MIPMAP_LINEAR.

Angenommen, texturieren ist aktiviert (durch Aufrufen von glEnable mit Argument GL_TEXTURE_1D oder GL_TEXTURE_2D), und GL_TEXTURE_MIN_FILTER wird auf eine der Funktionen festgelegt, die eine mipmap erfordert. Wenn entweder die Dimensionen der derzeit definierten Texturbilder (mit vorherigen Aufrufen von glTexImage1D oder glTexImage2D) nicht der richtigen Sequenz für Mipmaps folgen oder weniger Texturbilder definiert sind, als erforderlich sind, oder die Gruppe der Texturbilder eine unterschiedliche Anzahl von Texturkomponenten aufweist, ist es so, als ob die Texturzuordnung deaktiviert wäre. Die lineare Filterung greift nur in 2D-Texturen auf die vier nächstgelegenen Texturelemente zu. In 1D-Texturen greift die lineare Filterung auf die beiden nächstgelegenen Texturelemente zu. Die folgende Funktion ruft Informationen im Zusammenhang mit glTexParameterf, glTexParameteri, glTexParameterfv und glTexParameteriv ab:

glGetTexParameter

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client)
Windows 2000 Professional [nur Desktop-Apps]
Unterstützte Mindestversion (Server)
Windows 2000 Server [nur Desktop-Apps]
Header
Gl.h
Bibliothek
Opengl32.lib
DLL
Opengl32.dll

Siehe auch

glBegin

glBindTexture

glCopyPixels

glCopyTexImage1D

glCopyTexImage2D

glCopyTexSubImage2D

glDrawPixels

glEnd

glGetTexParameter

glPixelStore

glPixelTransfer

glPrioritizeTextures

glTexEnv

glTexGen

glTexImage1D

glTexImage2D

glTexSubImage1D

glTexSubImage2D