error = glu.Build1DMipmaps(internalformat, width, format, type, pixels)
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.
pixels
an (siehe oben)