我的應用程序可以快速渲染(通常每幀1-6毫秒),雙緩衝和同步到vblank啓用。在我的主循環中,我想睡10毫秒左右,然後讀取一些實時輸入並儘可能晚地進行渲染,同時仍然在截止日期之前更新幀(對於實時60 FPS渲染,延遲時間最短)。尋找OpenGL的垂直回掃時間
我可以交換緩衝區但不幸的是在某些系統上使用後glfinish在(Linux的非合成,至少)這似乎等不只有等到下一個緩衝交換,但直到圖像已經發出了HDMI端口(總等待25毫秒的範圍,應用程序以30 FPS運行)。在其他系統上(Linux複合),這種方法工作正常。沒有glFinish更多的工作被緩衝,造成更長的延遲,所以這也不好。
我對更精確的幀定時有什麼選擇?主要平臺爲Windows,Linux和OS X.
對啓用了垂直同步的幀進行定時是沒有意義的。 – Thomas 2012-03-26 02:06:24
它可以啓用同步工作,但我很樂意做沒有,太 - 只要有(當然,沒有撕裂,)的可靠方法。 – Tronic 2012-03-26 02:55:05
在OS X,你可以使用['CGDisplayModeGetRefreshRate'(http://developer.apple.com/library/mac/#documentation/GraphicsImaging/Reference/Quartz_Services_Ref/Reference/reference.html)。 – user1118321 2012-03-26 05:17:17