IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

ActionScript 3 Discussion :

cacheAsBitmap=true - fait baisser les performances dans certain cas ?


Sujet :

ActionScript 3

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre Expert Avatar de Lorenzo77
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    1 472
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 472
    Par défaut cacheAsBitmap=true - fait baisser les performances dans certain cas ?
    salut,

    j'ai fait des tests avec mes classes de gestion de particules et j'ai rencontré un problème surprenant ..

    • le test porte sur la création et le déplacement de 1100 particules sur la scène (la classe Particule étend la classe Shape)
    • chaque particule représente une ellipse dessiné avec drawEllipse()
    • elles sont ensuite déplacés en X et Y en portant du centre de la scène (comme une explosion)
    • plus le temps de vie d'une particule est élevé et plus son alpha baisse
    • le cacheAsBitmap est activé sur chaque occurence de Particule



    si j'active cacheAsBitmap :
    1100 particules -> 16 ips -> 16Mo et en augmentation

    si je n'active pas cacheAsBitmap :
    1100 particules -> 39 ips -> 11Mo


    normalement le cacheAsBitmap est censé me mettre tous les dessins de ces particules dans un même bitmap qui est ensuite superposé à la scène ... hors les performances baissent.

    quelqu'un comprend pourquoi ?

  2. #2
    Membre Expert Avatar de Lorenzo77
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    1 472
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 472
    Par défaut
    personne n'a remarqué ce genre de comportement ?

    j'ai mis le code des classes ici : http://web.codeur.free.fr/?p=538

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Avril 2010
    Messages : 10
    Par défaut
    salut lorenzo77 ,

    effectivement, je pense que tu auras tes réponses et solutions dans le chapitre 12.
    pratique d'actionScript 3 - Thibault Imbert.

    bonne continuation

  4. #4
    Rédacteur/Modérateur
    Avatar de beekeep
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2006
    Messages
    2 005
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2006
    Messages : 2 005
    Par défaut
    Salut

    en effet :
    Lorsqu’un DisplayObject subit une transformation autre qu’une simple translation en x et y, la mise en cache des bitmap est à éviter. Chaque étirement, rotation, changement d’opacité, ou déplacement de la tête de lecture nécessite une mise à jour de l’image bitmap créée en mémoire.

  5. #5
    Membre Expert Avatar de Lorenzo77
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    1 472
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 472
    Par défaut
    ok, c'est donc l'alpha qui empêche une vraie mise en cache ou plutôt qui force le cache a recréer le bitmap a chaque changement d'alpha (constamment).

    dommage, merci !

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Avril 2010
    Messages : 10
    Par défaut
    tu peux créer ton propre cacheAsBitmap et contrôler a la perfection la vitesse de rendu de chaque instance en utilisant la méthode draw(),
    ca serait long a t'expliquer ici, puis thibault le fait tellement bien,
    donc permet moi d'insister, je te conseille sincèrement de jeter un œil
    au chapitre 12 :

    • Rendu bitmap d’objets vectoriels
    • Optimiser les performances

    tu devrais trouver ton bonheur

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 0
    Dernier message: 09/07/2009, 13h39
  2. Réponses: 0
    Dernier message: 09/07/2009, 13h39
  3. Passer la validation Javascript dans certains cas
    Par tkino dans le forum Struts 1
    Réponses: 2
    Dernier message: 31/07/2006, 15h37
  4. [JOINTURES] interêt dans certain cas
    Par nicotine002 dans le forum Langage SQL
    Réponses: 4
    Dernier message: 13/06/2006, 17h22
  5. [POO] Modèle objet: this inutilisable dans certains cas?
    Par vlord dans le forum Général JavaScript
    Réponses: 13
    Dernier message: 13/08/2005, 10h41

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo