Developpez.com

Plus de 2 000 forums
et jusqu'à 5 000 nouveaux messages par jour

OpenGL Moderne

Compteur de FPS

Dans le monde des graphismes en temps réel, il est important de garder un œil sur les performances. Une bonne pratique est de déterminer un nombre de FPS comme objectif (habituellement 60 ou 30) et faire tout son possible pour s'y tenir.

2 commentaires Donner une note à l'article (5)

Article lu   fois.

Les deux auteur et traducteur

Site personnel

Traducteur : Profil ProSite personnel

Liens sociaux

Viadeo Twitter Facebook Share on Google+   

Navigation

   

Sommaire

   

I. Un compteur de FPS

Dans le monde des graphismes en temps réel, il est important de garder un œil sur les performances. Une bonne pratique est de déterminer un nombre de FPS comme objectif (habituellement 60 ou 30) et faire tout son possible pour s'y tenir.

Un compteur de FPS ressemble à cela :

 
Sélectionnez
double lastTime = glfwGetTime();
 int nbFrames = 0;

 do{

     // Mesure la vitesse
     double currentTime = glfwGetTime();
     nbFrames++;
     if ( currentTime - lastTime >= 1.0 ){ // Si le dernier prinf() a été réalisé il y a plus d'une seconde
         // printf et réinitialise le chronomètre
         printf("%f ms/frame\n", 1000.0/double(nbFrames));
         nbFrames = 0;
         lastTime += 1.0;
     }

     ... la suite de la boucle principale

Il y a une chose étrange dans ce code. Il affiche le temps, en millisecondes, nécessaire pour afficher une image (la moyenne sur une seconde) au lieu du nombre d'images dessinées durant la dernière seconde.

En fait, c'est beaucoup mieux. Ne faites pas confiance aux FPS. FramePerSecond = 1/SecondPerFrame, ce qui est une proportionnelle inverse et les humains sont nuls pour comprendre ce genre de proportionnelle. Prenez un exemple : vous écrivez une superbe fonction de rendu qui fonctionne à 1000 FPS (1ms/image), mais vous oubliez un petit calcul dans le shader, qui ajoute un coût de 0,1 ms. Et bam, 1/0.0011 = 900, vous venez de perdre 100 FPS. Moralité : n'utilisez jamais les FPS pour des analyses de performances.

Si vous prévoyez de faire un jeu fonctionnant à 60 FPS, votre objectif sera 16,6666 ms ; si vous prévoyez de faire un jeu fonctionnant à 30 FPS, votre objectif sera 33,3333 ms. C'est tout ce que vous devez savoir.

Ce code est disponible dans tous les tutoriels à partir du neuvième : indexation VBO ; regardez le fichier tutorial09_vbo_indexing/tutorial09.cpp. D'autres outils pour les performances sont disponibles dans la page Outils - débogueurs.

II. Remerciements

Cet article est une traduction autorisée dont le texte original peut être trouvé sur opengl-tutorial.org.

III. Navigation

   

Sommaire

   

Vous avez aimé ce tutoriel ? Alors partagez-le en cliquant sur les boutons suivants : Viadeo Twitter Facebook Share on Google+   

  

Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright © 2014 opengl-tutorial.org. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.