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.