{"id":3943,"date":"2015-11-21T09:37:44","date_gmt":"2015-11-21T09:37:44","guid":{"rendered":"http:\/\/anthroponaute.fr\/blog-informatique\/?p=3943"},"modified":"2016-05-30T05:36:21","modified_gmt":"2016-05-30T05:36:21","slug":"calculer-le-nombre-dimages-par-seconde","status":"publish","type":"post","link":"https:\/\/www.la-porte-des-nebuleuses.net\/blog-informatique\/?p=3943","title":{"rendered":"Calculer le nombre d&rsquo;images par seconde"},"content":{"rendered":"<p><a href=\"https:\/\/anthropoya.cluster014.ovh.net\/blog-informatique\/wp-content\/uploads\/2015\/11\/Q3_HUD_gameplay.jpg\"><img decoding=\"async\" loading=\"lazy\" class=\"alignnone  wp-image-5000\" src=\"https:\/\/anthropoya.cluster014.ovh.net\/blog-informatique\/wp-content\/uploads\/2015\/11\/Q3_HUD_gameplay.jpg\" alt=\"Q3_HUD_gameplay\" width=\"426\" height=\"320\" srcset=\"https:\/\/www.la-porte-des-nebuleuses.net\/blog-informatique\/wp-content\/uploads\/2015\/11\/Q3_HUD_gameplay.jpg 1024w, https:\/\/www.la-porte-des-nebuleuses.net\/blog-informatique\/wp-content\/uploads\/2015\/11\/Q3_HUD_gameplay-300x225.jpg 300w, https:\/\/www.la-porte-des-nebuleuses.net\/blog-informatique\/wp-content\/uploads\/2015\/11\/Q3_HUD_gameplay-624x468.jpg 624w\" sizes=\"(max-width: 426px) 100vw, 426px\" \/><\/a><\/p>\n<p><strong>Intro :\u00a0<\/strong><\/p>\n<p>Dans les jeux ou les applications graphiques il peut \u00eatre utile de savoir <strong>combien<\/strong> d&rsquo;images par seconde sont affich\u00e9es \u00e0 l&rsquo;\u00e9cran pendant le rendu.<\/p>\n<p><strong>Pr\u00e9requis :<\/strong><\/p>\n<p>&#8211; Savoir initialiser DirectX 10.1<\/p>\n<p><strong>Explications :<\/strong><\/p>\n<p>Voici le code pour calculer le temps de rafraichissement par seconde, cette m\u00e9thode devra \u00eatre appel\u00e9e \u00e0 chaque boucle de rendu.<br \/>\nIl est calcul\u00e9 aussi le temps que met, \u00e0 peu pr\u00e8s, le rendu pour afficher une image.<\/p>\n<pre class=\"brush: cpp; title: ; notranslate\" title=\"\">\r\n\r\nvoid CalculateFPS(float fTimeSinceLastFrame)\r\n{\r\n\u00a0\u00a0 \u00a0\/* Incr\u00e8mente le nombre d'images affich\u00e9es.\r\n\r\n       \/!\\ Doit \u00eatre d\u00e9clar\u00e9e en tant que float et initialis\u00e9e \u00e0 0 au d\u00e9but\r\n       de l'application *\/\r\n\u00a0\u00a0 \u00a0m_fNumFrames += 1.0f;\r\n\r\n   \/* Ajoute combien de temps s'est pass\u00e9 depuis la derni\u00e8re\r\n\u00a0\u00a0   image de rendu\r\n\r\n\u00a0\u00a0   \/!\\ Doit \u00eatre d\u00e9clar\u00e9e en tant que float et initialis\u00e9e \u00e0 0 au d\u00e9but\r\n\u00a0\u00a0   de l'application *\/\r\n\u00a0\u00a0 \u00a0m_fTimeElapsed += fTimeSinceLastFrame;\r\n\r\n\u00a0\u00a0 \u00a0float iFPS = 0;\r\n\u00a0\u00a0 \u00a0float iMilliSecPerFrame = 0;\r\n\r\n\u00a0\u00a0 \u00a0\/\/ Lorsqu'une seconde s'est \u00e9coul\u00e9e\r\n\u00a0\u00a0 \u00a0if (m_fTimeElapsed &gt;= 1.0f)\r\n\u00a0\u00a0 \u00a0{\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0iFPS = m_fNumFrames \/ m_fTimeElapsed;\r\n\r\n        \/\/ Temps moyen, en milisecondes, pour qu'une seule image soit rendue\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0iMilliSecPerFrame = 1000.0f \/ iFPS;\r\n\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\/* R\u00e9initialise le compteur d'images et le compteur de temps entre\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 chaque image *\/\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0m_fTimeElapsed = 0.0f;\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0m_fNumFrames = 0.0f;\r\n\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\/* On place les nombres dans une cha\u00eene repr\u00e9sentant les statistiques\r\n           format\u00e9es *\/\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0static char buffer[256];\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0sprintf(buffer, &quot;Images par seconde = %.2f | &quot;\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0&quot;Millisecondes par image = %.4f&quot;, iFPS, iMilliSecPerFrame);\r\n\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\/\/ On met \u00e0 jour le titre de la fen\u00eatre\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0SetWindowTextA(m_hWnd, buffer);\r\n\u00a0\u00a0 \u00a0}\r\n}\r\n<\/pre>\n<p><strong><br \/>\nR\u00e9sum\u00e9 :<\/strong><\/p>\n<p>Nous avons pr\u00e9sent\u00e9 comment calculer le FPS (Images par seconde) dans une application de rendu.<\/p>\n<p><strong>R\u00e9f\u00e9rences :\u00a0<\/strong><\/p>\n<p>Introduction to DirectX 9.0c &#8211; A shader approach &#8211; Franck D. Luna<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Intro :\u00a0 Dans les jeux ou les applications graphiques il peut \u00eatre utile de savoir combien d&rsquo;images par seconde sont affich\u00e9es \u00e0 l&rsquo;\u00e9cran pendant le rendu. Pr\u00e9requis : &#8211; Savoir initialiser DirectX 10.1 Explications : Voici le code pour calculer le temps de rafraichissement par seconde, cette m\u00e9thode devra \u00eatre appel\u00e9e \u00e0 chaque boucle de [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[4],"tags":[],"_links":{"self":[{"href":"https:\/\/www.la-porte-des-nebuleuses.net\/blog-informatique\/index.php?rest_route=\/wp\/v2\/posts\/3943"}],"collection":[{"href":"https:\/\/www.la-porte-des-nebuleuses.net\/blog-informatique\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.la-porte-des-nebuleuses.net\/blog-informatique\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.la-porte-des-nebuleuses.net\/blog-informatique\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.la-porte-des-nebuleuses.net\/blog-informatique\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=3943"}],"version-history":[{"count":22,"href":"https:\/\/www.la-porte-des-nebuleuses.net\/blog-informatique\/index.php?rest_route=\/wp\/v2\/posts\/3943\/revisions"}],"predecessor-version":[{"id":5001,"href":"https:\/\/www.la-porte-des-nebuleuses.net\/blog-informatique\/index.php?rest_route=\/wp\/v2\/posts\/3943\/revisions\/5001"}],"wp:attachment":[{"href":"https:\/\/www.la-porte-des-nebuleuses.net\/blog-informatique\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=3943"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.la-porte-des-nebuleuses.net\/blog-informatique\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=3943"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.la-porte-des-nebuleuses.net\/blog-informatique\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=3943"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}