[程式] 關於固定FPS的方法

看板GameDesign作者 (emeth)時間15年前 (2009/02/10 20:14), 編輯推噓1(1011)
留言12則, 4人參與, 最新討論串1/1
請問一般常用來固定FPS的方法有哪些 只能用loop一直去偵測時間是否到了嗎?? 有沒有可以參考的資料 感恩Orz -- (好痛>"<)~ ( ̄ε(# ̄)☆ o# O╮o( ̄皿 ̄o) ~(看我的殺球~~!!!!) -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 59.124.38.114

02/10 20:46, , 1F
1. 靠 SwapBuffer() 自動和螢幕掃描頻率同步
02/10 20:46, 1F

02/10 20:47, , 2F
2. 多餘幾個 ms 是算得出來的, 多的時間睡掉就好了
02/10 20:47, 2F

02/10 20:48, , 3F
跑 busy loop 是最差的作法, 浪費 CPU time 和電力...
02/10 20:48, 3F

02/10 22:34, , 4F
SwapBuffer()不一定和螢幕掃描頻率同步
02/10 22:34, 4F

02/10 22:37, , 5F
directx 在創建 device 時就可以調整了
02/10 22:37, 5F

02/10 22:38, , 6F
opengl windows 上有 wgl 支援 wglSwapIntervalEXT()
02/10 22:38, 6F

02/10 22:46, , 7F
但是那些都是固定跟螢幕的刷新綠一樣啦
02/10 22:46, 7F

02/10 22:46, , 8F
要設定特定的 fps 就只能在 renderer 裡面控制了
02/10 22:46, 8F

02/11 13:10, , 9F
垂直同步刷新打開,FPS就鎖住了。大部分FPS內部隻鎖定了遊戲
02/11 13:10, 9F

02/11 13:11, , 10F
邏輯更新頻率,渲染沒鎖,所以跑再快也沒關系。
02/11 13:11, 10F

02/11 13:13, , 11F
算時間差是常用方法,也有用定時器的,千萬別靠延時來穩定FPS
02/11 13:13, 11F

02/11 13:14, , 12F
上面說的“大部分FPS”是指主視角射擊。
02/11 13:14, 12F
文章代碼(AID): #19aM-nFy (GameDesign)