2013-02-26 34 views
15

Cụ thể hơn, ứng dụng libGDX-LWJGL trên máy tính để bàn. Có các tùy chọn cấu hình để tắt đồng bộ CPU cũng như so sánh, nhưng bất kể ứng dụng nào chạy ở tốc độ 60 khung hình/giây.Có thể tắt giới hạn khung trong libGDX không?

Điều này là tốt cho tất cả các ứng dụng thực tế - nhưng ngoài tò mò nếu không có gì khác, tôi muốn xem tốc độ khung hình có thể tăng bao nhiêu.

Trả lời

32

Rode Hyde câu trả lời của không còn chính xác do những thay đổi trong thư viện. Hãy thử điều này:

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 

Ngoài ra, hãy chắc chắn rằng bất kỳ vsync phần cứng tắt trên GPU của bạn, nếu có thể, như @RodHyde đề cập.

+1

400 fps, nhưng bây giờ box2d là quá nhanh –

+0

@Paul Tôi sẽ hỏi về điều đó trên #libgdx (irc.freenode.net) hoặc [libGDX forums] (http://www.badlogicgames.com/forum/) . –

6

Câu trả lời phụ thuộc rất nhiều vào tốc độ CPU và card đồ họa của bạn, nhưng nếu bạn thử cấu hình như sau khi tạo ứng dụng và tắt vsync trên cạc đồ họa thì điều đó sẽ đẩy nó khá khó.

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; 

Tắt Vsync sẽ ở đâu đó trong cài đặt cho cạc đồ họa của bạn. Trên thẻ nVidia của tôi, nó được cho là "Vertical sync" trong các tùy chọn. Nó được đặt thành "Thích ứng", giới hạn tốc độ khung hình ở 60 khung hình/giây, nhưng sau khi đặt thành "Tắt", tôi thấy> 4000fps được đo bằng fraps.

+0

Điều này hoạt động hoàn hảo. Cảm ơn bạn! – Mistodon

3

cfg.useCPUSynch đã bị loại bỏ. Đặt số cfg.foregroundFPS cho một số lớn thay vì đã thực hiện thủ thuật cho tôi.

+0

Điều này thực sự là một bình luận cho câu trả lời của @ RodHyde. Đó là về mặt kỹ thuật không chính xác vì OP muốn tắt hoàn toàn khung giới hạn. Nó cũng không đầy đủ vì bạn không đề cập đến vSyncEnabled hay backgroundFPS. –

Các vấn đề liên quan