2010-06-21 18 views
8

因此,我一直在閱讀很多關於openGL和gpus以及圖形的知識,而三重緩衝技術經常被人們稱爲免費性能提升。我知道爲什麼它有幫助;實際上,您可以進行v-sync,而不受60或30或20或15等幀速率的限制,因此您可以實際達到55fps。但是這實際上是否有成本?直觀地說,我希望三重緩衝可以將輸出延遲一幀,從而給所有內容增加一個非常小的延遲。三重緩衝真的是一個免費的性能提升?

回答

6

在55 FPS時,一幀有點低於20ms。所以它不是免費的,但幾乎總是值得的。

雖然在15 FPS,它可以是非常明顯的。 (順便說一下,這是一款POS筆記本電腦,大多數3D遊戲對我而言運行速度都很快,有些甚至更慢)。

有些人會注意到滯後現象,尤其是在較低的幀速率下,有時三倍緩衝不起作用預期。 (特別是在OpenGL中,硬件不能很好地支持的東西可能會回退到(可能非常慢)的軟件仿真。現在應該不是什麼問題,但是呃。)所以大多數使用三重緩衝的程序也是包括一個選項來禁用它。你可能想考慮做同樣的事情。

5

來自Akenine-Möller等人的優秀「實時渲染」(http://www.realtimerendering.com/)的引用,第835頁,這幾乎總結了你在自己的問題的答案中已經建議的內容,考慮了延遲:

「三重緩衝擁有雙緩衝一個重要優勢。使用 它,系統可以在等待垂直 回掃訪問等待緩衝器。雙緩衝,交換才能使那些圖形管線。[... ]三重緩衝的缺點是延遲增加到一個完整的幀,這種增加延遲了對用戶輸入的反應,例如鍵擊 和鼠標或操縱桿移動。「