Intro :
Dans les jeux ou les applications graphiques il peut être utile de savoir combien d’images par seconde sont affichées à l’écran pendant le rendu.
Prérequis :
– Savoir initialiser DirectX 10.1
Explications :
Voici le code pour calculer le temps de rafraichissement par seconde, cette méthode devra être appelée à chaque boucle de rendu.
Il est calculé aussi le temps que met, à peu près, le rendu pour afficher une image.
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 |
void CalculateFPS(float fTimeSinceLastFrame) { /* Incrèmente le nombre d'images affichées. /!\ Doit être déclarée en tant que float et initialisée à 0 au début de l'application */ m_fNumFrames += 1.0f; /* Ajoute combien de temps s'est passé depuis la dernière image de rendu /!\ Doit être déclarée en tant que float et initialisée à 0 au début de l'application */ m_fTimeElapsed += fTimeSinceLastFrame; float iFPS = 0; float iMilliSecPerFrame = 0; // Lorsqu'une seconde s'est écoulée if (m_fTimeElapsed >= 1.0f) { iFPS = m_fNumFrames / m_fTimeElapsed; // Temps moyen, en milisecondes, pour qu'une seule image soit rendue iMilliSecPerFrame = 1000.0f / iFPS; /* Réinitialise le compteur d'images et le compteur de temps entre chaque image */ m_fTimeElapsed = 0.0f; m_fNumFrames = 0.0f; /* On place les nombres dans une chaîne représentant les statistiques formatées */ static char buffer[256]; sprintf(buffer, "Images par seconde = %.2f | " "Millisecondes par image = %.4f", iFPS, iMilliSecPerFrame); // On met à jour le titre de la fenêtre SetWindowTextA(m_hWnd, buffer); } } |
Résumé :
Nous avons présenté comment calculer le FPS (Images par seconde) dans une application de rendu.
Références :
Introduction to DirectX 9.0c – A shader approach – Franck D. Luna


