游戏画面撕裂卡顿是怎么一回事(游戏画面有时候卡顿是什么问题)
不知道這個 618 有多少人買了新的「路由器 Plash Speed5」?
既然國行的 PlayStation5 和 Xbox Series X/S 都已經確認「那個」沒有問題了,加上相對合理的價格和預約一般就能買的體驗,相信不少人在打算或購買過本世代的主機了。相比于前代,PlayStation5 和 Xbox Series X/S 有更好的畫面、更流暢的體驗;還帶來了動態延遲輸入(DLI)、自動低延遲模式(ALLM)、高幀率(HFR)等能進一步改善游戲效果的新特性。但在眾多新特性中,可變幀率(VRR)帶來的影響最為基礎也最為直觀。
所以當身邊的 ta 問起新換的「路由器」好在哪里的時候,你該怎么跟 ta 解釋呢?
游戲畫面撕裂卡頓是怎么一回事
不知道大家日常游戲過程里有沒有遇到如下圖的情況?這就是我和游戲玩家口中的畫面「撕裂」,無論是撕裂和卡頓都對游戲時的體驗并不友好,但撕裂和卡頓造成的原因卻完全不一樣。
游戲畫面撕裂(圖源:Nivdia)
但想要理解「撕裂和卡頓是怎么發生的」還需要從最開始進行解釋。
小時候常玩的動畫集
我們都知道人眼有視覺暫留的特性,所以當很多張畫面超過一定速度從人眼前滑過,我們就會就會認為畫面中的內容是運動的,而每張畫面則會被叫做幀。而顯示器也是同理,它通過每隔一段時間刷新一次畫面,讓我們認為屏幕上的元素也都是運動的;日常生活中最常見的 60Hz 的顯示器一秒鐘會刷新 60 張畫面,144Hz 的顯示器一秒鐘則會刷新 144 張畫面。
顯示器是如何呈現畫面的
日常生活中很多人看的動畫都是由畫家畫出,而游戲畫面則是由顯卡繪制每幀畫面,顯卡把每幀畫面交給顯示器,顯示器就會從上到下一行一行地把這一幀畫面繪制出來,這種一行一行的繪制方式我們成為「逐行掃描」。也就是說顯示器顯示畫面并不是一下就能呈現一個畫面的,仍需要很短的時間進行繪制,只不過因為視覺暫留的特性我們無法分辨而已。
畫面在顯示器上呈現也需要時間(圖源:啃芝士 BV16x411e7bp)
當顯卡繪制完成畫面以后,需要把交給顯存,顯示器再從顯存中拿到畫面才能顯示,如果顯存中的畫面發生了改變,顯示器顯示的內容也會跟著發生改變。
正常顯示畫面的方式(圖源:啃芝士 BV16x411e7bp)
為了保證顯示器能在顯示過程中正常顯示畫面,不至于因為新畫面導致撕裂,顯存會劃分為前緩沖區和后緩沖區。顯示器只接受前緩沖區的畫面,顯卡計算完成新畫面了以后寫入到后緩沖區中;當顯示器想要顯示下一幀畫面時前后緩沖區的名稱發生對調,原來的前緩沖區成了后緩沖區,原來的后緩沖區成了前緩沖區,剛剛繪制在后緩沖區的圖像就能順利地傳給顯示器了。這時顯卡可以往新的后緩沖區中寫入新畫面,而不會影響到顯示器正在顯示的畫面。
為什么發生了卡頓和撕裂
但即使是有了緩沖器依然不能解決游戲中畫面出現撕裂的問題,這主要是因為顯示器采用了固定刷新率,而游戲中顯卡渲染每一幀所需要的時間是在不斷波動的。
造成卡頓的主要原因
比如當遇到大面積的反射場景、光線復雜的環境或者物品爆炸等復雜的場景,顯卡總是需要花費更多的時間才能渲染一幀,這時只能在一秒內只能輸出 48 幀,那么你大概率就能察覺到畫面已經發生了卡頓(注意不是撕裂)。這是因為顯示器從前緩存讀取畫面并呈現出來以后,后緩沖區如果沒渲染完的話,顯示器會等待一個時間再去問前緩沖區索要畫面。這時,你往往需要多等一段時間,顯示器呈現的幀間隔就不均勻了,剛好人眼對不均勻的幀間隔很敏感,你就能很明顯感知到畫面發生了卡頓。
造成畫面撕裂的主要原因(圖源:啃芝士 BV16x411e7bp)
而較為簡單的場景可以在一秒內則能輸出 90 幀,這時顯示器還在逐行呈現前緩存時,后緩沖區這邊顯卡已經渲染完畢了,前后緩沖區已經再次發生了翻轉,這樣顯示器渲染到一半的畫面剩下的就會變成另一個畫面了,這時顯示器會把新的畫面給渲染出來,這就是撕裂。畫面撕裂不僅僅影響體驗,破壞沉浸感,甚至還會導致眼睛疲勞和頭痛。
歸根結底還是顯示器固定的刷新時間導致了卡頓和撕裂。
要如何解決卡頓和撕裂
傳統解決方案 — 垂直同步
垂直緩存技術原理
在以前就有一項技術能減少卡頓和撕裂帶來不適影響,也就是「垂直同步」。在簡單環境下,如果示器還在顯示前緩沖,這時顯卡畫好了后緩沖,垂直同步會禁止顯卡進行繪圖,直到顯示器把前緩沖的畫面顯示完整,交換前后緩沖區的名字以后,顯卡就會繼續渲染了。如果你是 60Hz 的顯示器,打開垂直同步以后畫面就會鎖在 60 幀了,144Hz 打開垂直同步以后畫面就會鎖在 144 幀。
幀率陡然降低的地方(紅色)會有明顯卡頓(圖源:Nvidia)
但垂直同步并不能解決卡頓的問題。在復雜場景下,當幀速率降至低于該 60 幀時,垂直同步會將幀速率鎖定在最接近的水平,例如每秒 45 或 30 幀,隨著性能的提升,幀速率會回到 60,但是遇到性能瓶頸又會回落到較低的幀率,循環往復,讓卡頓的感知反而會更加。
垂直同步還會造成鼠標延遲。如果你移動了1cm 瞄準點,電腦收到這個消息把移動 1cm 瞄準點的坐標輸出給顯卡,顯卡把對應的畫面輸出給顯示器,所有的流程都不會推后,延遲僅有電路延遲。而開啟垂直同步以后,你移動瞄準點的時機剛好在顯示器還沒顯示完前緩沖的階段里,那么你移動瞄準點的指令會和顯卡一起等著,直到顯卡重新開始渲染;這無疑會增加延遲,表現在游戲中就是鼠標出現了粘滯感,所以大部分的射擊游戲和 MOBA 類游戲都不是很推薦打開垂直同步。
更好的解決方案 — 可變幀率
既然垂直同步會增加鼠標延遲,且不能根治卡頓,那么我們不妨換個思路,無論是卡頓還是撕裂實際上都是因為顯卡輸出的幀數是波動的,那么我們不妨讓顯示器也跟著波動刷新不就好了?
沒錯,Nvidia 的 G-Sync 和 AMD 的 FreeSync 解決卡頓和撕裂的思路就是利用的這個,雖然他們背后的技術實現并不太一樣,但是大體還是利用到了顯示器刷新率的變頻技術。而在 HDMI 2.1 版本中也正式引入了這個技術,并且命名為可變幀率(VRR),新的 PlayStation5 和 Xbox Series X/S 也都支持這一項技術。
可變幀率技能保證畫面不撕裂也能保證畫面不卡頓
顯卡輸出幀高于顯示器刷新率時,可變幀率會暫時不交換前后緩沖區,并用新生成的幀及時放入后緩沖區中覆蓋舊幀,保證畫面不發生撕裂地情況的同時,盡可能保證延遲和一般情況一致。
可變幀率保證畫面不撕裂
而當顯卡輸出幀低于顯示器刷新率時,可變幀率會及時告訴顯示器下一次刷新需要等待的實際時間,以及時降低顯示器的刷新頻率,讓用戶無法察覺畫面出現了掉幀。
可變幀率保證畫面不卡頓
可變幀率的目前支持得怎么樣
龍爭虎斗多年的 PC 平臺上的可變幀率
在 PC 上,無論是 Nvida 的 G-Sync,AMD 的 FreeSync 都是可變幀率的一種。在過去 Nvidia 有更嚴格的驗證標注,顯示器需要有特殊的模塊才能得到 G-Sync 標識,顯示器價格普遍較高;而 FreeSync 則是一個相對開放的標準,顯示器廠家只要選用支持 FreeSync 的面板就可以支持 FreeSync 了,相對而言價格較低。當然在近兩年,Nvidia 也 兼容 了 FreeSync 這個開放標準,當 Nvidia 顯卡連接到經過 Nvidia 認證的 FreeSync 顯示器上時,Nvidia 會啟用 G-SYNC COMPATIBLE 模式,同樣能獲得既無撕裂也無卡頓的畫面。
部分 FreeSync 顯示器也能打開 G-SYNC COMPATIBLE 模式了
但在電視上既不需要 FreeSync 認證也不需要 G-Sync 認證就可以支持游戲機的可變幀率,這是 HDMI 2.1 規格的一部分,并開始出現在大部分帶有 HDMI 2.1 接口的電視機上。值得一提的是,有些 HDMI 2.0 的電視機也會支持可變幀率,具體還是要看商品的技術規格。
HDMI 2.1 可變幀率
玩梗歸玩梗,最后需要提醒大家的是,雖然 PS5 和 Xbox Series X/S 都已經宣布了 HDMI 2.1 的可變幀率支持,但 PlayStation 也有「畫餅」不填坑的先例。相比之下 Xbox Series X/S 以及 Xbox One X/S 還支持 FreeSync 的可變幀率,這樣即使你沒有一臺支持 HDMI 2.1 的電視機,也依然可能可以通過 FreeSync 感受可變幀率的魅力。
Xbox One X(圖片來自官網)
總結
以上是生活随笔為你收集整理的游戏画面撕裂卡顿是怎么一回事(游戏画面有时候卡顿是什么问题)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: iOS 12.1正式版都有哪些改进?iO
- 下一篇: iPhone XS/XS Max 上的「