glTexParameterfv-Funktion
Legt Texturparameter fest.
Syntax
void WINAPI glTexParameterfv(
GLenum target,
GLenum pname,
const GLfloat *params
);
Parameter
-
Ziel
-
Die Zieltextur, die entweder GL_TEXTURE_1D oder GL_TEXTURE_2D sein muss.
-
pname
-
Der symbolische Name eines einzelnen Texturparameters mit einem Wert. Die folgenden Symbole werden in pname akzeptiert.
Wert Bedeutung - GL_TEXTURE_MIN_FILTER
Die Texturminierungsfunktion wird immer verwendet, wenn das zu strukturierende Pixel einem Bereich zugeordnet wird, der größer als ein Texturelement ist. Es gibt sechs definierte Minimierungsfunktionen. 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 eine geordnete Gruppe von Arrays, die das gleiche Bild bei zunehmend niedrigeren Auflösungen darstellen. Wenn die Textur dimensionen 2nx2m hat, gibt es max(n, m) + 1 mipmaps. Die erste Mipmap ist die ursprüngliche Textur mit Abmessungen von 2nx2m. Jede nachfolgende Mipmap hat Abmessungen 2k1x2l1, wobei 2kx2l die Abmessungen der vorherigen mipmap sind, bis entweder k = 0 oder l = 0. An diesem Punkt haben nachfolgende Mipmaps die Dimension 1x2l1 oder 2k1x1 bis zur endgültigen Mipmap, die Dimension 1x1 aufweist. Mipmaps werden mithilfe von glTexImage1D oder glTexImage2D definiert, wobei das Level-of-Detail-Argument 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 pixel, das texturiert wird, 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 Wrap-Parameter 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 beim Mapping eines einzelnen Bilds zu einem Objekt zu verhindern. GL_REPEAT bewirkt, dass der ganzzahlige Teil der s-Koordinate ignoriert wird; OpenGL verwendet nur den Bruchteil, wodurch ein wiederholtes Muster erstellt wird. Auf Elemente der Rahmentextur wird nur zugegriffen, wenn der Umbruch auf GL_CLAMP festgelegt ist. Zunächst ist GL_TEXTURE_WRAP_S auf GL_REPEAT festgelegt. - GL_TEXTURE_WRAP_T
Legt den Wrap-Parameter für die Texturkoordinate t entweder 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 positivste ganze Zahl 1,0 und die negativste ganze Zahl 1,0 zugeordnet wird. Die Werte werden an den Bereich [0,1] geklemmt, wenn sie angegeben werden. Anfangs 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 Bereit.
Wert Bedeutung - GL_NEAREST
Gibt den Wert des Texturelements zurück, der (in Manhattan Entfernung) am nächsten zur Mitte des zu strukturierenden Pixels liegt. - GL_LINEAR
Gibt den gewichteten Durchschnitt der vier Texturelemente zurück, die der Mitte des zu strukturierenden Pixels am nächsten liegen. Diese können Rahmentexturelemente enthalten, abhängig von den Werten von GL_TEXTURE_WRAP_S, GL_TEXTURE_WRAP_T und der genauen Zuordnung. GL_NEAREST ist im Allgemeinen 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 der Pixelmitte 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 der Pixelmitte 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 der Pixelmitte 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 beiden 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 der Pixelmitte 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 Parameter bereit.
Wert Bedeutung - GL_NEAREST
Gibt den Wert des Texturelements zurück, der (in Manhattan Entfernung) am nächsten zur Mitte des zu strukturierenden Pixels liegt. - GL_LINEAR
Gibt den gewichteten Durchschnitt der vier Texturelemente zurück, die der Mitte des zu strukturierenden Pixels am nächsten liegen. Diese können Rahmentexturelemente enthalten, abhängig von den Werten von GL_TEXTURE_WRAP_S, GL_TEXTURE_WRAP_T und der genauen Zuordnung. GL_NEAREST ist im Allgemeinen 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 |
---|---|
|
target oder pname war keiner der akzeptierten definierten Werte, oder wenn param einen definierten konstanten Wert (basierend auf dem Wert von pname) haben sollte und nicht. |
|
Die Funktion wurde zwischen einem Aufruf von glBegin und dem entsprechenden Aufruf von glEnd aufgerufen. |
Bemerkungen
Texturzuordnung ist eine Technik, bei der ein Bild auf die Oberfläche eines Objekts angewendet wird, als wäre das Bild ein Abziehbild oder ein Zellophan-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 aus dem 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.
Da mehr Texturelemente im Minimierungsprozess erfasst werden, werden weniger Aliasingartefakte sichtbar. Während die GL_NEAREST- und GL_LINEAR-Minimierungsfunktionen schneller sein können als die anderen vier, probieren sie nur ein oder vier Texturelemente ab, um den Texturwert des gerenderten Pixels zu bestimmen, und können Moiremuster oder unregelmäßige Übergänge erzeugen. Der Standardwert von GL_TEXTURE_MIN_FILTER ist GL_NEAREST_MIPMAP_LINEAR.
Angenommen, die Texturierung ist aktiviert (durch Aufrufen von glEnable mit argument GL_TEXTURE_1D oder GL_TEXTURE_2D) und GL_TEXTURE_MIN_FILTER auf eine der Funktionen festgelegt ist, für die eine mipmap erforderlich ist. Wenn entweder die Dimensionen der derzeit definierten Texturbilder (mit vorherigen Aufrufen von glTexImage1D oder glTexImage2D) nicht der richtigen Sequenz für mipmaps folgen, oder es sind weniger Texturbilder definiert als erforderlich, oder der Satz der Texturbilder weist eine unterschiedliche Anzahl von Texturkomponenten auf, als wäre die Texturzuordnung deaktiviert. Die lineare Filterung greift nur in 2D-Texturen auf die vier nächstgelegenen Texturelemente zu. Bei 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:
Anforderungen
Anforderung | Wert |
---|---|
Unterstützte Mindestversion (Client) |
Windows 2000 Professional [nur Desktop-Apps] |
Unterstützte Mindestversion (Server) |
Windows 2000 Server [nur Desktop-Apps] |
Header |
|
Bibliothek |
|
DLL |
|