2013-02-26 4 views
15

Genauer gesagt, eine Desktop-libGDX-LWJGL-Anwendung. Es gibt Konfigurationsoptionen zum Deaktivieren der CPU-Synchronisierung und Vsynching, aber unabhängig davon, ob die Anwendung mit 60 fps läuft.Ist es möglich, die Rahmenbegrenzung in libGDX zu deaktivieren?

Dies ist für alle praktischen Anwendungen in Ordnung - aber aus Neugier, wenn nichts anderes, würde ich gerne sehen, wie hoch die Framerate gehen könnte.

Antwort

32

Rode Hyde Die Antwort ist aufgrund von Änderungen in der Bibliothek nicht mehr korrekt. Versuchen Sie folgendes:

LwjglApplicationConfiguration config = new LwjglApplicationConfiguration(); 
config.vSyncEnabled = false; // Setting to false disables vertical sync 
config.foregroundFPS = 0; // Setting to 0 disables foreground fps throttling 
config.backgroundFPS = 0; // Setting to 0 disables background fps throttling 

Stellen Sie außerdem sicher, dass jede Hardware Vsync off auf Ihrer GPU, wenn möglich, als @RodHyde erwähnt.

+1

400 fps, aber jetzt box2d ist viel zu schnell –

+0

@Paul Ich würde darüber auf #libgdx (irc.freenode.net) oder die [libGDX Foren] (http://www.badlogicgames.com/forum/) fragen . –

6

Die Antwort hängt sehr von der Geschwindigkeit Ihrer CPU und Ihrer Grafikkarte ab, aber wenn Sie beim Erstellen Ihrer Anwendung eine Konfiguration wie die folgende versuchen und vsync auf Ihrer Grafikkarte deaktivieren, dann sollte das ziemlich anstrengend sein.

LwjglApplicationConfiguration cfg = new LwjglApplicationConfiguration(); 
cfg.title = "Framerate test"; 
cfg.width = 1280; 
cfg.height = 720; 
cfg.fullscreen = false; 
cfg.useGL20 = false; 
cfg.useCPUSynch = false; 
cfg.forceExit = true; 
cfg.vSyncEnabled = false; 

Deaktivierung vsync wird irgendwo in den Einstellungen für Ihre Grafikkarte sein. Auf meiner nVidia-Karte wird in den Optionen "Vertical Sync" angegeben. Es wurde auf "Adaptiv" eingestellt, die Bildrate wurde auf 60 fps begrenzt, aber nachdem ich es auf "Aus" gestellt hatte, sah ich> 4000 fps, gemessen durch fraps.

+0

Das hat perfekt funktioniert. Vielen Dank! – Mistodon

3

cfg.useCPUSynch wurde herausgenommen es scheint. Das Setzen von cfg.foregroundFPS auf eine große Zahl hat stattdessen den Trick für mich gemacht.

+0

Dies sollte wirklich ein Kommentar zu @ RodHyde's Antwort sein. Es ist technisch falsch, da das OP die Rahmenbegrenzung vollständig deaktivieren möchte. Es ist auch unvollständig, da Sie weder vSyncEnabled noch backgroundFPS erwähnen. –