Utilisation du mipmapping

Flash Player 9 et les versions ultérieures, Adobe AIR 1.0 et les versions ultérieures

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.