學號:20021210601? ? ? 姓名:韋蘇恒
【嵌牛導讀】講解解決畫面撕裂的幾種以及引出VRR的介紹。
【嵌牛鼻子】畫面撕裂? VRR
【嵌牛正文】
?????書接上文,解決畫面撕裂的第一個土方法就是開垂直同步。垂直同步會強制Bufferswap躬存,也就是幀傳遞發(fā)生在顯示器的VBlank階段茄唐,顯卡如果提前畫好了后緩存息裸,此時如果你的顯示器沒有逐行掃描完前緩存的畫面,就不允許發(fā)生幀傳遞沪编,顯卡就空載等著顯示器掃描完畢呼盆。顯示器掃描完畢前緩存的畫面以后進入了VBlank階段,再允許發(fā)生幀傳遞蚁廓,前后緩存更替后顯卡再開始畫新的幀访圃,所以這就是為什么你打開了垂直同步以后,幀率會被鎖定在顯示器最大刷新率下相嵌,因為顯卡需要等著顯示器去刷新腿时,所以你的最大幀率肯定只能是顯示器的刷新率了。60hz顯示器開垂直同步就被鎖60幀饭宾,144hz顯示器開垂直同步就被鎖144幀批糟。
????如果你開了垂直同步,假設(shè)你是的60hz顯示器看铆,顯卡能一直輸出60幀徽鼎,那是沒什么問題的,但是如果你的顯卡性能在某一刻弹惦,不足以輸出60幀的畫面會發(fā)生什么呢否淤?解決方法也很簡單,就讓顯示器再重復逐行掃描一次前緩存棠隐,用這次重復掃描的時間去等待顯卡繪制完成石抡,等下次刷新進入VBlank的時候,如果顯卡畫好了助泽,再執(zhí)行幀傳遞啰扛,所以說你的顯示器是重復顯示了一次畫面,算是跳過了一次报咳,這就等效于降低了屏幕的刷新率侠讯,而屏幕的刷新率下降,就一定會導致畫面出現(xiàn)不流暢的現(xiàn)象了暑刃。
所以呢為了解決這個情況厢漩,NVIDIA又推出了一個自適應垂直同步的功能,假設(shè)還是的60HZ顯示器岩臣,在高于60幀的情況打開垂直同步溜嗜,而如果幀率低于60幀以后宵膨,就不再讓顯示器繼續(xù)重復顯示前緩存了,而是直接關(guān)閉掉垂直同步炸宵,立刻交替前后緩存的畫面辟躏,這樣就可以緩解因顯卡性能不能滿足垂直同步的需要,而帶來的刷新率變化導致的卡頓了土全。
????但是垂直同步存在一個非常大的弊端捎琐,那就是延遲,由于顯卡畫好畫面以后需要等著顯示器進行逐行掃描裹匙,不能立馬去更新畫面瑞凑,這就導致了顯卡已經(jīng)畫好了后緩存里的畫面,如果游戲里的場景發(fā)生了變化概页,就不能立馬反饋到屏幕上籽御,必須要等待顯示器逐行掃描完畢以后才可以顯示出來,所以你看到的畫面都是滯后的惰匙,因此會產(chǎn)生延遲的現(xiàn)象技掏。
????而出了畫面的延遲之外,它還會產(chǎn)生鼠標響應延遲项鬼,這個原因我們將來講幀生成時間哑梳,和游戲引擎的延遲渲染的時候再介紹,這種延遲在一些單機里還好秃臣,如果是第一人稱射擊類網(wǎng)游涧衙,或者游戲里他就是致命的了,想要緩解這種延遲的方法也很簡單奥此,那就是打開三重緩沖的功能,三重緩沖很好理解雁比,就是在原來的前后緩存當中再額外增加一個新的緩存稚虎,這雖然可以緩解垂直同步帶來的部分延遲,但是不能根治偎捎,顯示器的刷新率如果顯著的低于顯卡的輸出幀蠢终,中緩存和后緩存都被顯卡畫完了,顯卡還是需要停止工作去等待顯示器進行逐行掃描茴她,其產(chǎn)生的延遲現(xiàn)象還是不容忽視寻拂。
????所以英偉達又搞了一個技術(shù),叫做快速垂直同步丈牢,來解決垂直同步與三重緩沖導致延遲祭钉,普通垂直同步為了防止后緩存覆寫前緩存的畫面,緩存畫完以后顯卡就停下來了己沛,而快速垂直同步則是在打開三重緩沖的基礎(chǔ)上慌核,允許中緩存和后緩存交替距境,也就是說顯卡可以無限制的去繪制后緩存,繪制好圖像以后垮卓,后緩存只會和中緩存交替垫桂,不會影響到前緩存的畫面。如此循環(huán)往復粟按,而顯示器永遠有一張完整的中緩存可以用來交替前緩存诬滩,所以畫面永遠不會發(fā)生撕裂。也正是由于顯卡不需要等著顯示器灭将,可以無限制的去更新新的畫面疼鸟,所以這種快速垂直同步也被稱之為無阻塞垂直同步。
????這種垂直同步也有很大的弊端宗侦,那就是有很多的過往幀被顯卡復寫后拋棄了愚臀,導致幀與幀的間隔和運動差異巨大,會出現(xiàn)非常明顯的幀生成時間不均勻?qū)е碌目D感矾利,因此廠家們都在尋找一種新的解決方法姑裂,去解決畫面撕裂的同時還不會產(chǎn)生延遲的技術(shù),這個就是目前在購買顯示器聽到非常多的名詞男旗,G-sync和Freesync了舶斧。
????G-sync和Freesync的官方叫法叫自適應顯示器刷新率,簡稱VRR察皇。其工作原理就是當顯卡的輸出幀低于顯示器刷新率的時候茴厉,強制延長VBlank的時間,讓顯示器持續(xù)顯示上一幀畫面什荣,不進行任何的操作矾缓,等到顯卡渲染完成圖像以后,再允許發(fā)生幀傳遞稻爬。以此來讓顯示器的刷新率去動態(tài)匹配顯卡輸出幀嗜闻,也就是說垂直同步是顯卡等顯示器,VRR則是顯示器等顯卡桅锄,顯示器會在顯卡渲染好畫面之前一直顯示上一幀琉雳。
????但是上面所講的東西都是理論,如果放到實際可能情況會更復雜一點友瘤。好翠肘,上面我們已經(jīng)簡單了解了G-sync和Freesync對比垂直同步技術(shù)的不同之處,和實現(xiàn)原理辫秧,下文我們將繼續(xù)介紹VRR的具體工作流程束倍。