Entwickler-Ecke
Multimedia / Grafik - FPS und QueryPerformanceCounter, Fehler?
matthiasluebbe - Sa 29.03.08 17:39
Titel: FPS und QueryPerformanceCounter, Fehler?
Um in meinem Programm die Framerate zu bestimmen benutze ich den QueryPerformanceCounter.
Das ganze sieht in etwa so aus:
...
QueryPerformanceCounter(Start);
//Bewegung berechnen, Figur zeichnen, usw...
QueryPerformanceCounter(Ende);
TempZeit:=(Endzeit-Startzeit)/Frequenz;
...
Laut msdn ist die Einheit für Start- und Endezeit "Counts",
die Einheit für die Frequenz ist "Counts pro Sekunde".
Also müsste TempZeit die Sekunden pro Frame angeben, oder?
Wenn ich nun den Kehrwert von TempZeit nehme (power(TempZeit,-1))
müsste das doch die Anzahl der Frames pro Sekunde sein, oder?
Das ganze kommt mir nämlich etwas spanisch vor da ich einen
FPS-Wert von über 700 habe.
BenBE - Mo 31.03.08 08:20
Titel: Re: FPS und QueryPerformanceCounter, Fehler?
matthiasluebbe hat folgendes geschrieben: |
Um in meinem Programm die Framerate zu bestimmen benutze ich den QueryPerformanceCounter.
Das ganze sieht in etwa so aus:
...
QueryPerformanceCounter(Start);
//Bewegung berechnen, Figur zeichnen, usw...
QueryPerformanceCounter(Ende);
TempZeit:=(Endzeit-Startzeit)/Frequenz;
...
Laut msdn ist die Einheit für Start- und Endezeit "Counts",
die Einheit für die Frequenz ist "Counts pro Sekunde".
Also müsste TempZeit die Sekunden pro Frame angeben, oder?
Wenn ich nun den Kehrwert von TempZeit nehme (power(TempZeit,-1))
müsste das doch die Anzahl der Frames pro Sekunde sein, oder?
Das ganze kommt mir nämlich etwas spanisch vor da ich einen
FPS-Wert von über 700 habe. |
Moderne Grafikkarten schaffen sogar noch weit mehr ... >5000 FPS hab ich sogar schon selber gesehen ...
Ach ja: Es spart Zeit,
1 / Zeit zu rechnen, anstatt die
Power-Funktion zu nutzen ...
matthiasluebbe - Mo 31.03.08 09:27
Hmm, danke, darauf bin ich garnicht gekommen. Aber ansonsten stimmt das soweit?
Und ich benutze ja nicht den Grafikbeschleuniger der Grafikkarte sondern mache
das ganze per BitBlt und ner Paintbox. Angeblich soll das ja relativ langsam sein.
Ab 4 animierten und bewegten Figuren pendelt sich das ganze bei 150 - 160 FPS ein.
Mal sehen ob eine Kollisionsabfrage das ganze noch nach unten drückt. ;)
BenBE - Mo 31.03.08 10:42
Die Frequenz musst Du mit QueryPerformanceFrequency abfragen ...
@Richtig: Wenn's ruckelt und er dir >10 FPS anzeigt, ist's unter Garantie falsch ;-)
matthiasluebbe - Mo 31.03.08 10:57
Jepp, hab ich ja auch gemacht.
Und es ruckelt eigentlich nicht. Die Animation selber sieht zwar noch nicht
ganz so toll aus wie mit Andorra 2D, aber das bekomm ich schon noch irgend-
wie hin. Ich will ersteinmal versuchen das ganze ohne OpenGL oder DirectX
hinzubekommen. Das hat ja früher auch funktioniert, z.B bei Earthworm Jim
für Win 95 oder bei Pitfall - The Mayan Adventure. Ok, die Jungs konnten in
gegensatz zu mir auch richtig Programmieren. ;)
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!