Framecounter: Unterschied zwischen den Versionen

Aus DGL Wiki
Wechseln zu: Navigation, Suche
 
K
Zeile 2: Zeile 2:
  
 
Am Anfang der Renderschleife "misst" man die Zeit und speichert sie in einer Variable.
 
Am Anfang der Renderschleife "misst" man die Zeit und speichert sie in einer Variable.
Dafür kann man die von Windows bereitgestellten Methoden "Gettickcount" http://msdn.microsoft.com/library/default.asp?url=/library/en-us/sysinfo/base/gettickcount.asp (gibt in Millisekunden an, wie lange Windows läuft) oder QueryPerformanceCounter http://msdn.microsoft.com/library/default.asp?url=/library/en-us/winui/WinUI/WindowsUserInterface/Windowing/Timers/TimerReference/TimerFunctions/QueryPerformanceCounter.asp .
+
Dafür kann man die von Windows bereitgestellten Methoden "Gettickcount" [http://msdn.microsoft.com/library/default.asp?url=/library/en-us/sysinfo/base/gettickcount.asp] (gibt in Millisekunden an, wie lange Windows läuft) oder QueryPerformanceCounter [http://msdn.microsoft.com/library/default.asp?url=/library/en-us/winui/WinUI/WindowsUserInterface/Windowing/Timers/TimerReference/TimerFunctions/QueryPerformanceCounter.asp] .
 
Für unsere Zwecke reichen diese beiden Funktionen vollkommen aus.
 
Für unsere Zwecke reichen diese beiden Funktionen vollkommen aus.
  

Version vom 1. Oktober 2004, 16:59 Uhr

Wenn man in seinem Programm die Frames pro Sekunde (FPS) anzeigen lassen möchte, so bietet sich der folgende Lösungsweg an.

Am Anfang der Renderschleife "misst" man die Zeit und speichert sie in einer Variable. Dafür kann man die von Windows bereitgestellten Methoden "Gettickcount" [1] (gibt in Millisekunden an, wie lange Windows läuft) oder QueryPerformanceCounter [2] . Für unsere Zwecke reichen diese beiden Funktionen vollkommen aus.

Als zweiten Schritt rendert man seine Szene, verarbeitet Tastatureingaben usw. Also alles was in der Renderschleife passiert.

Am Ende der Renderschleife stoppt man dann ein zweites Mal die Zeit und erhält nun eine Zeitdifferenz.

Die FPS erhält man nun durch folgende Berechnung:

FPS = 1000 / Zeitdifferenz;

Wobei Zeitdifferenz bei dieser Formel auch in Millisekunden angegeben sein muss.