MIP-mappar
(som också kallas för
mipmappar
) är bitmappar som grupperas tillsammans och kopplas till en textur för att öka återgivningskvaliteten och prestandan under körning. Varje bitmappsbild i MIP-mappen är en version av den huvudsakliga bitmappsbilden, men innehåller inte lika många detaljer.
Du kan till exempel ha en mipmapp som omfattar en huvudbild på 64 x 64 pixlar vid högsta kvalitet. Bilder med lägre kvalitet i mipmappen är då 32 × 32, 16 × 16, 8 × 8, 4 × 4, 2 × 2 och 1 × 1 pixlar.
Texturuppspelning
är möjligheten att läsa in den bitmapp som har lägst kvalitet först och sedan stegvis visa bitmappar med högre kvalitet efterhand som bitmapparna läses in. Eftersom bitmappar med lägre kvalitet är små, läses de in snabbare än huvudbilden. Därför kan programanvändarna visa bilden i ett program innan den huvudsakliga bilden med hög kvalitet har lästs in.
Flash Player 9.115.0. och senare versioner och AIR implementerar den här tekniken (processen kallas för
mipmapping
) genom att skapa optimerade versioner i olika skalor av respektive bitmapp (med början vid 50 %).
Flash Player 11.3 och AIR 3.3 har stöd för texturuppspelning via parametern
streamingLevels
i metoderna
Context3D.createCubeTexture()
och
Context3D.createTexture()
.
Med texturkomprimering kan du lagra komprimerade texturbilder direkt på GPU:n, vilket kräver mindre GPU-minne och minnesbandbredd. Komprimerade texturer komprimeras normalt offline och överförs till GPU:n i komprimerat format. Flash Player 11.4 och AIR 3.4 har dock stöd för texturkomprimering under körning vilket är användbart i vissa situationer, t.ex. vid återgivning av dynamiska texturer från vektorgrafik. Gör så här för att använda texturkomprimering under körning:
-
Skapa texturobjektet genom att anropa metoden
Context3D.createTexture()
, och skicka antingen
flash.display3D.Context3DTextureFormat.COMPRESSED
eller
flash.display3D.Context3DTextureFormat.COMPRESSED_ALPHA
i den tredje parametern.
-
Använd den
flash.display3D.textures.Texture
-instans som returneras av
createTexture()
och anropa antingen
flash.display3D.textures.Texture.uploadFromBitmapData()
eller
flash.display3D.textures.Texture.uploadFromByteArray()
. Dessa metoder överför och komprimerar texturen på samma gång.
MIP-mappar skapas för följande bitmapptyper:
-
en bitmapp (JPEG-, GIF- eller PNG-filer) som visas med klassen Loader i ActionScript 3.0
-
en bitmapp i biblioteket för ett Flash Professional-dokument
-
ett BitmapData-objekt
-
en bitmapp som visas med funktionen
loadMovie()
i ActionScript 2.0
MIP-mappar används inte på filtrerade objekt eller bitmappscachelagrade filmklipp. MIP-mappar används emellertid om du har bitmappsomformningar i ett filtrerat visningsobjekt, även om bitmappen finns i maskat innehåll.
Mipmapping sker automatiskt, men det finns några riktlinjer som du kan följa om du vill vara säker på att bilderna utnyttjar den här optimeringen:
-
Ange egenskapen
smoothing
till
true
för Video-objektet vid videouppspelning (se klassen Video).
-
För bitmappar behöver egenskapen
smoothing
inte anges till
true
, men kvalitetsförbättringarna blir mer påtagliga när bitmappar använder utjämning.
-
Använd bitmappsstorlekar som är delbara med 4 eller 8 för tvådimensionella bilder (t.ex. 640 x 128, som kan förminskas enligt följande: 320 x 64 > 160 x 32 > 80 x 16 > 40 x 8 > 20 x 4 > 10 x 2 > 5 x 1).
För tredimensionella texturer använder du MIP-mappar där varje bild har en upplösning som är en tvåpotens (d.v.s. 2^n). Anta att huvudbilden har upplösningen 1 024 x 1 024 pixlar. Bilderna med lägre kvalitet i MIP-mappen blir då 512 x 512, 256 x 256, 128 x 128 ned till 1 x 1 pixlar för sammanlagt 11 bilder i MIP-mappen.
Tänk på att mipmapping inte utförs för bitmappsinnehåll med udda höjd eller bredd.