Direct mipmappen

Gebruik mipmapping als u grote afbeeldingen moet schalen.

Een andere nieuwe functie die beschikbaar is in Flash Player 10.1 en AIR 2.5 op alle platforms, heeft betrekking op mipmapping. In Flash Player 9 en AIR 1.0 werd een mipmappingfunctie geïntroduceerd waarmee de kwaliteit en prestaties van verkleinde bitmaps werd verbeterd.

Opmerking: De mipmapfunctie is alleen van toepassing op dynamisch geladen afbeeldingen of ingesloten bitmaps. Mipmapping is niet alleen van toepassing op weergaveobjecten die zijn gefilterd of in cache zijn opgeslagen. Mipmapping kan alleen worden verwerkt als de bitmap een even breedte en hoogte heeft. Wanneer een breedte of hoogte oneven is, wordt de mipmapping stopgezet. Een afbeelding van 250 x 250 kan bijvoorbeeld maximaal worden gemipmapt tot 125 x 125. In dat geval is minstens één van de afmetingen een oneven getal. Bitmaps met afmetingen die getallen in kwadraat zijn leveren de beste resultaten op, zoals 256 x 256, 512 x 512, 1024 x 1024, enz.

Stel bijvoorbeeld dat er een afbeelding van 1024 x 1024 geladen is en dat een ontwikkelaar de afbeelding wil schalen om een miniatuur in een galerij te maken. De mipmappingfunctie rendert de afbeelding correct, als deze geschaald is met de gedownsampelde tussenversies van de bitmap als texturen. In vorige versies van de runtime werden verkleinde tussenversies van de bitmap in het geheugen gemaakt. Als er een afbeelding van 1024 x 1024 werd geladen als een afbeelding van 64 x 64 werd weergegeven, maakten oudere versies van de runtime elke halve bitmap. In dit geval zouden er bijvoorbeeld 512 x 512, 256 x 256, 128 x 128 en 64 x 64 bitmaps worden gemaakt.

Flash Player 10.1 en AIR 2.5 ondersteunen nu mipmapping rechtstreeks vanuit de oorspronkelijke bron naar de vereiste doelomvang. In het vorige voorbeeld zouden alleen de 4 MB (1024 x 1024) originele bitmap en de 16 KB (64 x 64) gemipmapte bitmap worden gemaakt.

De mipmappinglogica werkt ook met de ontlaadfunctie voor dynamische bitmaps: Als er alleen een 64 x 64 bitmap wordt gebruikt, wordt de 4 MB oorspronkelijke bitmap uit het geheugen vrijgegeven. Als de mipmap opnieuw moet worden gemaakt, wordt het origineel opnieuw geladen. Als andere gemipmapte bitmaps van verschillende grootten vereist zijn, wordt de mipmapketen van bitmaps gebruikt om de bitmap te maken. Als er bijvoorbeeld een 1:8-bitmap moet worden gemaakt, worden de 1:4-, 1:2- en 1:1-bitmaps gecontroleerd om te bepalen welke eerst in het geheugen wordt geladen. Als er geen andere versies zijn gevonden, wordt de originele 1:1-bitmap vanaf de bron geladen en gebruikt.

De JPEG-decompressor kan binnen het eigen formaat mipmapping uitvoeren. Met dit directe mipmappen kan een grote bitmap direct worden gedecromprimeerd tot een mipmapindeling, zonder dat de volledige ongecomprimeerde afbeelding wordt geladen. Het generen van de mipmap is aanmerkelijk sneller en het geheugen dat door grote bitmaps wordt gebruikt, wordt niet eerst toegewezen en vervolgens vrijgegeven. De kwaliteit van de JPEG-afbeelding is vergelijkbaar met de algemene mipmappingtechniek.

Opmerking: Maak spaarzaam gebruik van mipmapping. Mipmapping verbetert dan wel de kwaliteit van in schaal verkleinde bitmaps, maar heeft gevolgen voor de bandbreedte, het geheugen en de snelheid. Soms kunt u beter een bitmapversie importeren die in een extern programma is geschaald. Begin niet met grote bitmaps als u van plan bent deze te verkleinen.