Bezeichnung
glu.Build1DMipmaps -- erstellt eine 1D Mipmap
Übersicht
error = glu.Build1DMipmaps(internalformat, width, format, type, pixels)
Beschreibung
glu.Build1DMipmaps() erstellt eine Reihe von vorgefilterten 1D-Texturkarten mit abnehmender Auflösung (Mipmap genannt). Mipmaps können so verwendet werden, dass Texturen nicht aliasiert erscheinen.

Ein Rückgabewert von 0 bedeutet Erfolg. Andernfalls wird ein GLU-Fehlercode zurückgegeben. Siehe glu.ErrorString für Details.

glu.Build1DMipmaps() prüft zunächst, ob die Breite der Daten eine Potenz von 2 ist, andernfalls skaliert es eine Kopie von pixels (aufwärts oder abwärts) auf die nächstgelegene Potenz von 2. Diese Kopie dient als Grundlage für nachfolgende Mipmapping-Vorgänge. Wenn beispielsweise width 57 ist, skaliert eine Kopie von pixels auf 64, bevor ein Mipmapping stattfindet (wenn width genau zwischen 2er Potenzen liegt, wird die Kopie von pixels nach oben skaliert).

Wenn die GL-Version 1.1 oder höher ist, verwendet glu.Build1DMipmaps() Proxy-Texturen (siehe gl.TexImage1D()), um zu bestimmen, ob die Implementierung die gewünschte Textur im Texturspeicher speichern kann. Wenn nicht genügend Platz vorhanden ist, wird width halbiert (und wieder halbiert), bis sie passt.

Als nächstes erstellt glu.Build1DMipmaps() eine Reihe von Mipmap-Ebenen; es halbiert eine Kopie von pixels (oder eine skalierte Version von pixels, falls erforderlich), bis Größe 1 erreicht ist. Auf jeder Ebene ist jedes Stück im halbierten Bild ein Durchschnitt der entsprechenden zwei Stücke im größeren Bild.

gl.TexImage1D() wird aufgerufen, um jedes dieser Bilder nach Ebenen zu laden. Wenn width eine Potenz von 2 ist, die in die Implementierung passt, ist Ebene 0 eine Kopie von pixels und die höchste Ebene ist log2(width). Wenn z.B. width 64 ist, werden folgende Bilder erstellt: 64x1, 32x1, 16x1, 8x1, 4x1, 2x1 und 1x1. Diese entsprechen den Stufen 0 bis 6.

internalformat gibt das interne Format des Texturbildes an. Siehe Interne Pixelformate für Details. Dies kann auch einer der Sonderwerte 1, 2, 3 oder 4 sein.

format muss eine der folgenden Konstanten sein: #GL_COLOR_INDEX, #GL_RED, #GL_GREEN, #GL_BLUE, #GL_ALPHA, #GL_RGB, #GL_RGBA, #GL_LUMINANCE oder #GL_LUMINANCE_ALPHA

type muss eine der folgenden sein: #GL_UNSIGNED_BYTE, #GL_BYTE, #GL_BITMAP, #GL_UNSIGNED_SHORT, #GL_SHORT, #GL_UNSIGNED_INT, #GL_INT oder #GL_FLOAT.

Bitte beachten Sie, dass dieser Befehl direkt mit Speicherzeigern arbeitet. Es gibt auch eine Version, die mit Tabellen anstelle von Speicherzeigern arbeitet, aber das ist natürlich langsamer. Siehe glu.BuildMipmaps für Details. Siehe Mit Zeigern arbeiten für Einzelheiten zur Verwendung von Speicherzeigern mit Hollywood.

Weitere Informationen finden Sie in einem OpenGL-Referenzhandbuch.

Eingaben
internalformat
gibt das interne Format der Textur an; muss eine der Pixelformatkonstanten sein (siehe oben)
width
gibt die Breite des Texturbildes an
format
gibt das Format der Pixeldaten an (siehe oben)
type
gibt den Datentyp für pixels an (siehe oben)
pixels
gibt einen Zeiger auf die Bilddaten im Speicher an
Rückgabewerte
error
Fehlercode oder 0 für den Erfolg

Navigation zeigen