Les
mipmaps
sont des images bitmap qui sont regroupées et associées à une texture dans le but d’améliorer la qualité et les performances d’affichage à l’exécution. Chaque image bitmap dans le mipmap est une version de l’image bitmap principale, mais à un niveau de détails réduit.
Par exemple, vous pouvez disposer d’un mipmap qui inclut une image principale à une qualité optimale de 64 × 64 pixels. Les images de qualité inférieure dans le mipmap seront de 32 × 32, 16 × 16, 8 × 8, 4 × 4, 2 × 2 et de 1 × 1 pixels.
La
diffusion en continu de texture
fait référence à la capacité de charger tout d’abord les images bitmap de qualité inférieure, puis d’afficher progressivement les images bitmap de qualité supérieure au fur et à mesure de leur chargement. Etant donné que les bitmaps de qualité inférieure sont de petites images, elles se chargent plus rapidement que l’image principale. Par conséquent, les utilisateurs de l’application peuvent afficher l’image dans une application avant le chargement de l’image bitmap principale de qualité supérieure.
Flash Player 9.115.0 (et les versions ultérieures) et AIR implémentent cette technique (dite de
mip-mapping
), en créant des versions optimisées à diverses échelles de chaque bitmap (en partant de 50 %).
Flash Player 11.3 et AIR 3.3 prennent en charge la diffusion en continu de textures via le paramètre
streamingLevels
des méthodes
Context3D.createCubeTexture()
et
Context3D.createTexture()
.
La compression de texture permet d'enregistrer des images de texture au format compressé directement sur le GPU en vue d'économiser la mémoire GPU et la bande passante. En règle générale, les textures sont compressées hors ligne et téléchargées sur le GPU au format compressé. Néanmoins, Flash Player 11.4 et AIR 3.4 prennent en charge la compression de texture à l'exécution, utile dans certaines situations, notamment lors du rendu des textures dynamiques d'une illustration vectorielle. Pour utiliser la compression de texture à l'exécution, procédez comme suit :
-
Créez l'objet de texture en appelant la méthode
Context3D.createTexture()
, et en transmettant
flash.display3D.Context3DTextureFormat.COMPRESSED
ou
flash.display3D.Context3DTextureFormat.COMPRESSED_ALPHA
dans le troisième paramètre.
-
A l'aide de l'occurrence
flash.display3D.textures.Texture
renvoyée par
createTexture()
, appelez la méthode
flash.display3D.textures.Texture.uploadFromBitmapData()
ou
flash.display3D.textures.Texture.uploadFromByteArray()
. Ces méthodes permettent de télécharger et de compresser simultanément la texture.
Les mipmaps sont créées pour les types de bitmap suivants :
-
Une image bitmap (fichiers JPEG, GIF ou PNG) affichée par le biais de la classe Loader d’ActionScript 3.0.
-
Une image bitmap dans la bibliothèque d’un document Flash Professional.
-
Un objet BitmapData.
-
Une image bitmap affichée à l’aide de la fonction
loadMovie()
d’ActionScript 2.0.
Les mipmaps ne sont pas appliqués aux objets filtrés ni aux clips dont les bitmaps sont en cache. En revanche, ils sont appliqués si un objet d’affichage filtré contient des transformations de bitmap, même si le bitmap se trouve dans un contenu masqué.
Le mipmapping est exécuté automatiquement, mais les quelques conseils suivants vous permettront d’être certain que vos images bénéficient de cette optimisation :
-
Pour la lecture vidéo, définissez la propriété
smoothing
sur
true
pour l’objet Video (voir la classe Video).
-
Pour les bitmaps, il n’est pas nécessaire de définir la propriété
smoothing
sur
true
, mais l’activation de cette propriété assure une amélioration visible de la qualité.
-
Utilisez des tailles de bitmap divisibles par 4 ou 8 pour les images bidimensionnelles (affichage 640 x 128, qui peut être réduit comme suit : 320 x 64 > 160 x 32 > 80 x 16 > 40 x 8 > 20 x 4 > 10 x 2 > 5 x 1).
Pour les textures tridimensionnelles, utilisez des mipmaps dans lesquels la résolution de chaque image est une puissance de 2 (2^n). Par exemple, la résolution de l’image principale est de 1 024 x 1 024 pixels. Les images de qualité inférieure dans le mipmap seront à 512 x 512, 256 x 256, 128 x 128 jusqu’à 1 x 1 pixels pour un total de 11 images dans le mipmap.
Notez que le mip-mapping ne gère pas un contenu de bitmap dont la largeur ou la hauteur est impaire.