Gebruikmaken van mipmapping

Flash Player 9 of hoger, Adobe AIR 1.0 of hoger

MIP-maps (ook wel mipmaps genoemd) zijn gegroepeerde bitmaps die zijn gekoppeld aan een structuur om de kwaliteit en de prestaties van het renderen in runtime te verhogen. Elke bitmapafbeelding in de mipmap is een versie van de hoofdbitmapafbeelding, maar bevat minder details dan de hoofdafbeelding.

U kunt bijvoorbeeld een mipmap hebben met een hoofdafbeelding van de hoogste kwaliteit van 64x64 pixels. De afbeeldingen van lagere kwaliteit in de mipmap hebben dan een resolutie van 32x32, 16x16, 8x8, 4x4, 2x2 of 1x1 pixels.

Structuurstreaming verwijst naar de mogelijkheid eerst een bitmap van lage kwaliteit te laden en vervolgens bitmaps van steeds hogere kwaliteit weer te geven naarmate deze worden geladen. Aangezien bitmaps van lagere kwaliteit klein zijn, worden deze sneller geladen dan de hoofdafbeelding. Gebruikers kunnen dan een afbeelding in een toepassing bekijken voordat de hoofdafbeelding van hoge kwaliteit is geladen.

In Flash Player 9.115.0. en hoger en AIR wordt deze technologie geïmplementeerd (het proces wordt mipmapping genoemd) door geoptimaliseerde versies te maken van variërende schalen van elke bitmap (te beginnen bij 50%).

Flash Player 11.3 en AIR 3.3 bieden ondersteuning voor structuurstreaming via de parameter streamingLevels van de methoden Context3D.createCubeTexture() en Context3D.createTexture().

Met structuurcompressie kunt u structuurafbeeldingen rechtstreeks op de GPU opslaan in een gecomprimeerde indeling om GPU-geheugen en geheugenbandbreedte te sparen. Gecomprimeerde structuren worden gewoonlijk offline gecomprimeerd en geüpload naar de GPU in een gecomprimeerde indeling. Flash Player 11.4 en AIR 3.4 ondersteunen echter runtimestructuurcompressie. Dit is vooral handig in bepaalde situaties, zoals bij het renderen van dynamische structuren van vectorafbeeldingen. Voer de volgende stappen uit als u runtimestructuurcompressie wilt gebruiken:

  • Maak het structuurobject door de Context3D.createTexture()-methode aan te roepen of door flash.display3D.Context3DTextureFormat.COMPRESSED of flash.display3D.Context3DTextureFormat.COMPRESSED_ALPHA door te geven in de derde parameter.

  • Gebruik de flash.display3D.textures.Texture-instantie die wordt geretourneerd door createTexture() en roep flash.display3D.textures.Texture.uploadFromBitmapData() of flash.display3D.textures.Texture.uploadFromByteArray() aan. Met deze methoden kunt u de structuur in één stap uploaden en comprimeren.

MIP-mappen worden gemaakt voor de volgende types bitmaps:

  • een bitmap (JPEG, GIF of PNG-bestanden) die wordt weergegeven met de Loader-klasse van ActionScript 3.0.

  • een bitmap in de bibliotheek van een Flash Professional-document

  • een BitmapData-object

  • een bitmap die wordt weergegeven met behulp van de functie loadMovie() van ActionScript 2.0.

MIP-maps worden niet toegepast bij gefilterde objecten op filmfragmenten die in bitmaps in de cache zijn geplaatst. MIP-maps worden wel toegepast als er bitmaptransformaties in een gefilterd weergaveobject zijn, zelfs als de bitmap zich in de gemaskeerde inhoud bevindt.

Mipmapping gebeurt automatisch, maar u kunt een aantal richtlijnen volgen, zodat uw afbeeldingen gebruik maken van deze optimalisatie:

  • Voor het afspelen van video stelt u de eigenschap smoothing in op true voor het Video-object (zie de klasse Video

  • Voor bitmaps hoeft u de eigenschap smoothing niet in te stellen op true, maar de kwaliteitsverbeteringen zijn beter zichtbaar als dit wel wordt gedaan.

  • Gebruik voor tweedimensionale afbeeldingen bitmapafmetingen die deelbaar zijn door 4 of 8 (bijvoorbeeld 640x128, een waarde die vervolgens als volgt kan worden verminderd: 320x64 > 160x32 > 80x16 > 40x8 > 20x4 > 10x2 > 5x1).

    Gebruik voor driedimensionale structuren mipmaps waarbij elke afbeelding een resolutie tot de macht 2 heeft (dus 2^n). Stel bijvoorbeeld dat de hoofdafbeelding een resolutie van 1024x1024 pixels heeft. De kwaliteit van de lagere afbeeldingen in de mipmap zou dan 512x512, 256x256, 128x128, enz. zijn tot aan 1x1. En de mipmap zou in totaal 11 afbeeldingen bevatten.

    Mipmapping vindt niet plaats voor bitmapinhoud met een oneven breedte of hoogte.