Titre: Tester le FPS !!!
Posté par: hacknours le le 07-06-2005 a 10:31:15
Bonjour à tous,
J'ai une question toute simple... Comment faire pour connaître la fréquence d'affichage d'une animation sur un ordinateur donné ? Ne pas confondre avec "Comment retrouver le FPS d'une animation ?" ...
Je m'explique. Lorsque que je créé une animation Flash, je défini le FPS (la fréquence d'affichage) qui est en réalité une sorte de vitesse limite. Si je joue mon animation sur un bon PC, l'animation arrivera à sa fin au bout de 5 secondes (par exemple). Sur une autre machine moins puissante, l'animation prendra fin au bout de 10 voir 15 secondes, alors que le FPS de l'animation n'a pas changé...
Ya-t-il un moyen de connaître les capacités de rafraichissement en fonction de la machine de façon simple ?
Cela servirai à diriger le navigateur sur telle ou telle animation. Exemple: ma machine plafonne à 15 FPS dans certain cas. Donc il est inutile de tenter d'afficher 30 FPS si la machine ne le permet pas...
J'imaginais une solution toute bête, sûrement efficace, mais pas très pratique... la voilà : - Je charge un son qui dure exactement 1 seconde. Ce son tourne en boucle avec un compteur qui s'incrémente à chaque fois que le son se joue à nouveau. En gros un compteur de temps réel - Sur cette même animation Je place un clip (de la couleur inverse au fond) qui rempli tout l'espace, qui au départ est totalement opaque et qui à l'arrivée disparaît. Cette opération de changement d'opacité est parfois très lente à s'afficher (la rapidité de l'opération varie bcp en fonction de la machine utilisée). - Au final je regarde combien de fois le son s'est joué durant la modification de l'opacité et je peux définir si la machine est rapide à l'affichage ou non.
Ma méthode n'est sûrement pas la meilleure... Connaîssez vous une méthode plus appropriée ? Plus simple ? Moins visible ?
Merciiii d'avance |
Titre: Re:Tester le FPS !!!
Posté par: tavman le le 07-06-2005 a 11:03:02
Ma méthode n'est sûrement pas la meilleure...
=> En effet puisqu'elle tu peut très bien regarder le temps sur la machine... une seconde, c'est une seconde... et que la machine rame ou pas, c'est pareil. Ensuite, pas besoin d'afficher quelque chose pour faire ramer un PC... une petite boucle for qui va de 0 a 1000, ca suffit emplement.
Donc alors il existe pleins de méthode similaires pour faire ce que tu veut faire. Le nom donné, c'est bench (enfin il me semble)... En fait, il faut utiliser l'objet Date de Flash :
var D:Date = new Date(); Old_D = 0; this.onEnterFrame = function() { var D:Date = new Date(); for (i=0; i<3000; i++) { C = D.getMilliseconds()-Old_D; C = (C<0) ? 1000+C : C; } trace(C); Old_D = D.getMilliseconds(); };
et là, normalement, ca devrait ramer. Note qu'on fait une boucle for 3000 fois pour faire 3000 fois le même calcul... c'est bien pour faire ramer la bécane... Après ca, y a plus qu'a récupérer les millisecondes et puis tu te fait ton petit calcul normalement... Et puis tu laisse tourner ca 2 ou 3 secondes à 30 FPS (ou juste le temps du chargement) histoire d'etre sur de ton coup et tu renvoit la personne vers ce que tu veut après....
Par contre, il y a un petit pépin... C'est que je suis pas certain que tu puisse voir comme ca si ca rame en fonction de la carte graphique... Donc faudrai changer l'alpha de quelque chose pour voir ca en effet... Mais bon, déjà, comme ca, t'as une bonne idée de la bécane sur laquelle tu tourne...
Voila... Bonne chance a toi... |
Titre: Re:Tester le FPS !!!
Posté par: hacknours le le 07-06-2005 a 11:23:37
Merci pour cette réponse élairante ;D
Effectivement c + pour une question d'affichage "graphique" que je posait la question...
Ta méthode me sera utile pour tester la vitesse de calcul de la machine utilisée...
Je suis sur Mac et ma carte graphique compte ses années. J'ai comme projet de faire une intro avec des flashs (voile blanc opaque qui perd son opacité). J'ai vu une intro dans ce style et mal gérée (par mon ordi). En clair Un flash blanc était associé à un son et dès que ce son fut terminé un autre flash s'enchaine.
Ma carte graphique (ou tout simplement mon MAC) ne suivait pas. J'avais bien le son mais le flash (blanc) n'avait pas eu le temps de disparaître (80% opaque) lorsque le suivant commençait.
En clair, au lieu d'avoir la sensation d'un flash et des images sombres le reste et le principal du temps, j'avais un joli écran blanc et de temps en temps une image qui commence à apparaître, mais l'ensemble est resté princpalement blanc...
Bonjour l'effet flash avec flash ^^
(wow chuis en forme kel jeu de maux) |
Titre: Re:Tester le FPS !!!
Posté par: tavman le le 07-06-2005 a 21:40:29
| benn t'as plus qu'a mettre un truc qui change l'alpha 1000x par frame et ca devrait passer ;) |
Titre: Re:Tester le FPS !!!
Posté par: thio valone le le 08-06-2005 a 13:23:59
Hello Hacknours, tu me reconnaîtra je crois ;)
Pour tester le FPS pour mes anims j'utilise un MovieClip avec juste un champ de texte nommé txtFPS et ce code sur la 1ere frame :
Code:
this.onEnterFrame = function() { txtFPS.text = getFps() + " fps"; // affiche le FPS };
Object.prototype.getFps = function() { if (signal == true) { timeElapsed = getTimer(); // récupère le temps écoulé ttes les 2 frames en ms } else { currentFPS = Math.round(1000 /(getTimer() - timeElapsed)); // calcule le FPS entre 2 frames } signal = !signal; // toggle return currentFPS; };
|
|
Après t'as plus qu'à poser ce MC sur ta scène et lancer ton anim...
En gros, ça calcule le temps passé entre 2 images et calcule du coup le véritable FPS. Moi ça me sert bien pour savoir si certains effets un peu lourds (trop d'alpha, trop d'enterFrame ect ...) font chuter le FPS, de combien et à quel moment.
Jusqu'à présent c'est la meilleure méthode que j'ai trouvé pour ça alors sers toi-en à foison ! :D
|
Titre: Re:Tester le FPS !!!
Posté par: tavman le le 08-06-2005 a 14:39:43
Sinon, ce que tu peut faire (histoire de pas trop t'emmerder), c'est changer toi même la qualité de l'annim en fonction du FPS réel du gars... je sais plus trop comment ca marche ( _root._quality il me semble) mais ca peut etre plus cool que d'avoir a te taper 5 annim... en temps normal, t'as pas trop a descendre en qualité mauvaise... déjà, la qualité moyenne accélere vachement les annim...
Disons que tu peut te dire "si jamais j'ai 20 frames secondes, alors je me met en qualité moyenne, si je descend en dessous de 15 FPS, je passe en mauvais; ensuite ca, pour remonter, vaut mieux laisser un peu de batement... genre si tu remonte au dessus de 22 FPS, tu repasse en bonne qualité et si t'es a 17, tu remonte en moyenne...
Et oui, faut pas oublier que le frameratting varie tout au long d'une annimation... |
Titre: Re:Tester le FPS !!!
Posté par: thio valone le le 08-06-2005 a 15:23:09
L'option consistant à changer la qualité de l'anim ça peut etre pas mal, mais je pense qu'il faut la définir une fois pour toute en arrivant sur l'anim. Si tu fais varier continuellement la qualité en fonction du FPS, ça risque de gêner plus qu'autre chose. :-\ (genre si t'as des textes ect ...).
Une solution serait soit de proposer directement au visiteur de choisir sa qualité avant d'entrer sur le site suivant la puissance de son ordi (genre : http://mapage.noos.fr/thiovalone/heroboy/ (http://mapage.noos.fr/thiovalone/heroboy/)) et de passer un paramètre de ton HTML à ton Flash (monFlash?qualite="high") que tu récupère sur ton _root par exemple.
Ou bien, mettre un bouton poussoir ou une commande clavier du genre : _quality = "high", _quality = "low" ...
A noter que faire varier une qualité haute en moyenne ou même basse n'affectera pas bcp le rendu des bitmaps. A contrario, si t'as une dominante de graphiques vectoriels, la variation de qualité se fera plus ressentir :D |
Titre: Re:Tester le FPS !!!
Posté par: tavman le le 09-06-2005 a 11:46:44
Je suis totalement contre le fait de demander quoi que ce soit au visiteur... A chaque fois, ca fait une page en plus... Déjà, quand un site me demande ma langue jme dit "ehh beh... il est même pas capable de le détecter tout seul alors que y a des 10aines de moyen de la connaitre (soit par javascript soit directement par Flash d'ailleur) ". C'est comme les sites qui te demande si t'as le pluggin Flash... Mais qu'est-ce que le visiteur lambda en sais ???
La puissance du PC ?? bon encore, peut etre qu'il sais a quoi s'en tenir mais c'est assez rare quand même... Les mecs qui concoivent des sites oublient souvent que le niveau des personnes a qui ils s'adresse est quand même loin du leur...
Alors peut etre que faire varier la qualité au milieu de l'annim n'est pas une excelente solution... Mais en général, c'est rare qu'une annim prenne 3 FPS d'un coup sauf quand t'éteint un programme ou quelque chose du genre... |
Titre: Re:Tester le FPS !!!
Posté par: thio valone le le 09-06-2005 a 12:46:11
Je suis totalement contre le fait de demander quoi que ce soit au visiteur
|
|
Euh là t'y vas un peu fort ! ::)Pour moi, y a rien de pire par exemple qu'un site qui s'ouvre en Fullscreen sans qu'on me l'ai demandé ou juste signifier. Pour une détection du Flash et de la langue automatique là je suis d'accord. :)
| en général, c'est rare qu'une annim prenne 3 FPS |
|
Crois moi ça arrive bien plus souvent qu'on le pense. Il suffit juste qu'il y ait plus de onEnterFrame à un moment donné ou des effets un peu lourds (genre avec de la transparence à gogo) pour que l'anim en prenne un bon coup.
Maintenant c'est clair que c'est pas systématique non plus mais mettre déja un bouton permettant de régler la qualité, quand on sait qu'une anim risque de ramer sur les petites configs, ça peut être un plus. ;)
|
Titre: Re:Tester le FPS !!!
Posté par: waz le le 09-06-2005 a 12:58:32
| Ouai enfin quand tu fais un site, tu l'optimise au max ... Donc sa sert a rien de faire une annim trop long ... trop lourde ... tout le monde va faire skip intro .... |
Titre: Re:Tester le FPS !!!
Posté par: tavman le le 10-06-2005 a 09:37:00
Je suis totalement contre le fait de demander quoi que ce soit au visiteur
|
|
Euh là t'y vas un peu fort ! ::)Pour moi, y a rien de pire par exemple qu'un site qui s'ouvre en Fullscreen sans qu'on me l'ai demandé ou juste signifier. |
|
Je suis aussi contre le fait de faire un full screan (peut importe le site d'ailleur)... donc ca va. Sinon, c'est vrai qu'a cause de la prog, ca peut ce mettre a ramer plus, je le sais, mais c'est rare que des effet graphiques a peut pret constants commencent a faire ramer plus qu'il ne faut... |
Forum-webmaster | Actionné par YaBB SE
© 2001-2003, YaBB SE Dev Team. Tous droits réservés.
|