Trucsweb.com

Forum de discussion

 Forum « Flash et Shockwave » (archives)

Re: Conseil pour fluidité - 24fps ?

Envoyé: 2 mars 2006, 20h32 par dada


Salut,

en fait ce n'est pas une question si simple pour moi (ce n'est pas comme faire un script où on connait le chemin et le but à atteindre) et en faite, je pense que çà peut être une question très technique. J'ai aussi chercher et chercher quel était le bon FPS. Et je suis pas le seul, j'ai vu sur le net des gens qui mettaient 31,5 de FPS ou 35,7 pour avoir le meilleur résultat. Je donne des chiffres au hazard mais c'était dans ce style !

Personnellement, j'ai souvent utilisé 25 FPS, les raisons (parfois plus psychologiques que réelles) :
- le courant électrique alternatif a une fréquence de 50Hz, c'est d'ailleurs pour çà que les TV affichent 50 trames par seconde (25 FPS entrelacée), en TV, çà évite d'avoir des fréquences résiduelles génantes, mais honnêtement, je ne pense pas que la raison soit valable pour un ordinateur :),
- c'est une des valeurs qui permet d'équilibrer au mieux fluidité et performances demandées par l'application.
- 25 FPS correspond à peu près à la persistence rétinienne, d'après ce qu'on m'a appris à l'école, bien que mon avis est que 30 ou 40 FPS est plus proche de la vérité,

Ensuite, après avoir entendu par plusieurs sources que 30 FPS était ce qui marchait le mieux sur ordi (car les ordis, fabriqués dans des pays qui utilisent du courant alternatif 60Hz, sont plus à l'aise avec des mutiples de cette fréquence... d'où le NTSC 30 FPS entrelacée).

Depuis, bien que j'ai aucune preuve que l'un marche mieux qu'un autre, j'utilise 30 FPS, et il me semble visuellement que c'est plus propre que 25 FPS.

Maintenant, il faut voir aussi ceci :

- déjà, Flash n'utilise pas les ressources de la carte graphique, uniquement le CPU travaille, car Flash doit pouvoir fonctionner sur tout type de système, ce n'est pas un jeu 3D mais une application web à la base, donc toute animation allourdie la charge CPU, il suffit de regarder le gestionnaire des tâches, onglet "performances"...,

- et, ce qui cause les accoups dont tu parles (à mon avis, ce n'est pas une question d'anim trop lourde, tu peux le vérifier en regardant les perfs de ton CPU pendant que le flash tourne), c'est une question de synchronisation entre le rafraîchissement de ton écran (qui est aussi un FPS) et celui de Flash. Si ton écran (associé à la carte graphique) rafaîchit à une fréquence de 75 Hz, et tu demandes 30 FPS au flash : l'écran affiche une image toutes les 13,33ms, le flash toutes les 33,33ms. Si on dessinne ces intervals sur un graphique, on va voir qu'il y a glissement entre les 2, ce qui, à mon avis, provoque ces accoups. Je n'ai jamais vraiment "analysé" çà de manière détaillée, mais j'avais commencé à m'y intéresser avant de passer à autre chose ;) Il me semble donc, que plus on augmente le FPS dans Flash, moins ce "glissement" prend de l'importance. A 120 FPS, çà me paraît moins génant, mais le CPU est vite solicité à 100%. Mettre 75 FPS dans ce cas n'arrange pas non plus forcément les choses car, sans parler des perfs du flash, le flash n'envoie pas forcément ses images au même moment que l'ensemble carte graphiqe/écran et les défauts peuvent être encore plus présents.

- La dernière chose que j'ai à dire, et c'est de loin la plus génante, c'est à propos du MANQUE TOTAL de régularité du FPS d'un swf mis dans un navigateur web ! Le test peut être fait avec un swf vide ! On met un FPS à 30 dans flash, on publie un swf et html, et on test dans le navigateur : Mozilla, le résultat moyen est de 25 FPS et 24 avec IE !! Et je parle d'un swf vide !
J'ai commencé à faire 2 classes, une pour visionner le FPS, et une pour le stabiliser (à partir d'astuces trouvées sur le web). Je n'ai pas tout à fait fini ce que je voulais faire, quand ce sera fait (et srutout quand j'aurais un site lol) je le mettrai en ligne. L'astuce est d'utiliser une boucle for qui tourne en continue dans le flash. Le résultat est un FPS quasiment constant dans IE et à peine moins bon dans Mozilla, mais un autre résultat est une utilisation (parfaitement) constante de 100% du CPU ! lol Mais sans ralentissement du flash pour autant.

Donc, voilà, d'une question simple, j'en ai fait un truc compliqué ;-) Pour répondre simplement, je dirais : utilise 30 FPS, et au fur à mesure de l'évolution de ton projet, vérifie combien de performances tu demandes à ton CPU, pour estimer si d'autres qui ont un CPU moins puissant pourront voir ton anim dans de bonnes conditions.

Une petite note aussi sur les animations d'objets sur la scène. Il y a 2 façons d'animer un objet :

- soit on le déplace d'un certain nombre de pixels à chaque image : si le FPS diminue l'objet est plus saccadé, normal, mais est aussi plus lent !
- soit on le déplace à chaque image, en fonction du temps écoulé : si le FPS diminue, l'objet saccade mais son mouvement demeure aussi rapide. Pour utiliser ce deuxième type de mouvement, tu peux utiliser la classe mx.transitions.Tween de Flash8. C'est en faite la classe Tween de Robert Penner, qu'il avait faite à l'époque de Flash6.
On sait qu'on objet part à l'instant 0 d'un point A, on dit qu'il doit être arrivé au point B à l'instant X, donc on sait (grâce à une équation en fonction du temps) quelle doit être sa position à chaque instant. La référence est le temps, non le nombre d'images :)
Puisque tu as Flash8, tu peux essayer cet exemple, mets un petit clip "clip" sur la scène à gauche, code sur l'image du scénario :
---------------------------------------
import mx.transitions.Tween;
var func:Function = mx.transitions.easing.Regular.easeInOut;
var maTween:Tween = new Tween( this.clip, "_x", func, this._x, 400, 2, true);
---------------------------------------
Que ce soit à 5 ou à 120 FPS, l'objet met 2 secondes pour faire son mouvement.
Ordre des paramètres :
new Tween(objet qui subit la tween, sa propriété à modifier, la fonction utilisée pour calculer la position, point de départ du mouvement, point d'arrivée, temps du mouvement, true).
Il y a des fonctions élastiques, à rebond, etc... Pour les connaître, il faut aller voir dans le dossier d'install de flash, le chemin chez moi est le suivant (j'ai flash et windows en anglais, ...oui je m'entraîne lol) :
D:\Flash8\Flash 8\en\First Run\Classes\mx\transitions\easing
Il y a 6 classes, en les ouvrant on peut connaître le nom des différentes fonctions.

Grâce à çà, si le FPS dégringole, les animations saccadent, mais ne ralentissent pas.
Pour connaître toutes les possibilités de la classe Tween, voir sur le net. D'autres que Robert Penner en ont fait aussi des très bien (voir des mieux).

Ben j'ai encore écrit comme un romancier ! En ce moment, je suis dans ma phase "j'écris tout ce que je sais" ;) Cà va m'aider à trouver des trucs à mettre dans mon site lol

Pour info, ceux qui font des jeux les font souvent en 60 FPS.

++
dada


Réponses

 sp spRe: Conseil pour fluidité - 24fps ? dada2/3/2006
 sp spRe: Conseil pour fluidité - 24fps ? - Woooaaa ! Casarchie3/3/2006
 sp spRe: Conseil pour fluidité - 24fps ? - Woooaaa ! dada3/3/2006
Aucun médias sociaux
X

Trucsweb.com Connexion

Connexion

X

Trucsweb.com Mot de passe perdu

Connexion

X

Trucsweb.com Conditions générales

Conditions

Responsabilité

La responsabilité des Trucsweb.com ne pourra être engagée en cas de faits indépendants de sa volonté. Les informations mises à disposition sur ce site le sont uniquement à titre purement informatif et ne sauraient constituer en aucun cas un conseil ou une recommandation de quelque nature que ce soit.

Aucun contrôle n'est exercé sur les références et ressources externes, l'utilisateur reconnaît que les Trucsweb.com n'assume aucune responsabilité relative à la mise à disposition de ces ressources, et ne peut être tenue responsable quant à leur contenu.

Droit applicable et juridiction compétente

Les règles en matière de droit, applicables aux contenus et aux transmissions de données sur et autour du site, sont déterminées par la loi canadienne. En cas de litige, n'ayant pu faire l'objet d'un accord à l'amiable, seuls les tribunaux canadien sont compétents.

X

Trucsweb.com Trucsweb

X

Trucsweb.com Glossaire

X

Trucsweb.com Trucsweb

X

Trucsweb.com Trucsweb

Conditions

Aucun message!

Merci.

X
Aucun message!
X

Trucsweb.com Créer un compte

Créer un compte

.
@