三重緩衝

多用於遊戲製作的圖象處理技術

三重緩衝是一種圖象處理技術。英文名Triple Buffering,是一種圖象處理技術。Triple Buffering使用一個前置緩存和兩個後置緩存。在著色完第一個後置緩衝區的數據后,立即開始處理第二個後置緩衝區。

原理


今天,不少新遊戲都採用的是Triple Buffering,Trible Buffering正逐漸成為發展的趨勢,因為它沒有Vsync(熒幕的垂直刷新頻率)等待的時間,遊戲也將更加流暢。三重緩衝,有3個緩衝區,顯卡無需等待前緩衝區清空進而騰出后緩衝區,隨時可以把渲染結果放入第3個緩衝區。

實現


這就是說,可以在打開垂直同步的同時保持應有的幀速了。ATinVidia的驅動中都有打開三重緩衝(triple buffering)的選項。可惜這隻能起到一半的作用,因為驅動中的3重緩衝選項只對OpenGL遊戲起作用。加上OpenGL遊戲遠少於D3D遊戲,所以事實上驅動的3倍緩衝選項在超過一半情況都不起作用。三級緩衝是低幀速的完美解決辦法,不過,這並不是免費的午餐。打開三級緩衝也意味著需要多50%的緩存空間。在某些條件之下,它也可能會對遊戲效果產生負面影響

應用


舉個簡單的例子來說明這個潛在的問題:譬如當我們在1600x1200解析度下運行遊戲的時候,每個像素需要32bit空間儲存信息,1600x1200x32=61,440,000bit,將它轉換成MB為單位,相當於7.32MB。使用二級緩衝,需要14.64MB顯存;為了使用三級緩衝,則需要21.96MB顯存。顯存佔用率不成問題。不過,一旦打開4xFSAA,這個數字就會飛速膨脹。在打開4xFSAA的時候,有多出4倍的像素進行取樣,如此21.96MB乘4,變成可觀的87.84MB!這就大於顯存總容量的1/3了。如果這個遊戲需要用200MB的空間儲存材質、光影、各種貼圖……等等,遊戲效果就會非常變得非常糟糕,會由於不時存取硬碟產生大量停滯現象。這裡只是提醒大家注意,如果發現遊戲過程中存取硬碟過於頻繁,則可能說明3級緩衝佔用了太多顯存,此時你就應該考慮降低遊戲的畫面設置或者購買更高檔的顯存容量更大的顯卡了。