Hellhound66 hat geschrieben:Ich spreche aus Erfahrung bei meinem OGL Krempel. Da hab
ich zwar 230 FPS, aber immer wieder zucker drinne.
Ein Multitasking-Betriebssystem schaltet ja immer zwischen
verschiedenen Prozessen hin und her.
Auch wenn Du keine externen Programmen laufen hast, das
Betriebssystem selbst läuft weiterhin und muß Verwaltungs-
aufgaben durchführen.
Bei solchen Frameraten ist das also kein Wunder wenn Du
das siehst, denn das umschalten dauert seine Zeit.
Je nachdem was noch so alles läuft, ist die kleinste Zeit auf
WinNT glaubich 5ms. Bei mehreren laufenden Prozessen
summiert sich das also und kann auch mal länger sein.
In dem obigen Code von mir hilft dabei die Erhöhung der
Priorität des eigenen Prozesses. Dadurch kann man diesem
Verhalten ein bissl entgegenwirken.
Mehr kann ich, ohne Code zu sehen, dazu aber erstmal
nicht sagen.
Frameraten von 230 oder mehr sind meist eh nicht nötig, wenn
der Monitor nicht auch mit dieser Bildwiederholfrequenz arbeitet.
Wenn der Monitor mit 115Hz arbeitet (als Beispiel), dann zeichnest
Du so jedes zweite Bild umsonst, da es der User nie zu sehen
bekommt.
Die Synchronisation mit dem Monitor macht also schon Sinn.
Dann läuft es bei einem User mit 60Hz, bei einem anderen
mit 120Hz. Durch das TimeBasedMovement ist die Spiel-
geschwindigkeit trotzdem bei beiden gleich schnell.
Frames die nicht angezeigt werden, weil das Updaten zu schnell
geht (z.B. 230FPS), kann man sich also sparen. Das frisst nur
unnötig Leistung und belastet das Multitaskingsystem somit
auch.