顯示器刷新率和顯卡fps一定要很匹配嗎?
市場上顯示器屏幕刷新率一般在60左右,那是不是表示現在fps高過60太多的顯卡用起來都沒什麼區別?是不是表示如果顯示器刷新率只有60左右,那麼太好的顯卡的遊戲效果反而不如一般顯卡遊戲效果?
瀉藥,關於這個問題我了解過一些,嘗試用比較易懂的語言表達一下個人的理解,如果下文有不對的地方歡迎批評指正。
60hz什麼概念?1秒鐘刷新60次,也就是說顯示器1秒鐘可以給你呈現60幀畫面。
這裡為了方便表達,我把60強行改成10來舉例,即:
顯示器1秒鐘刷新10次,也就是說1秒鐘可以給你呈現10幀畫面,每次刷新用時0.1秒。
所以,如果顯卡能夠保證輸出每一幀的時間間隔均勻,正好能跟顯示器刷新率契合的情況下,確實1秒鐘輸出10幀就夠了,再多的話,比如顯卡在顯示器兩次刷新的一個周期內,輸出了兩幀畫面,前一幀就會被當作無效幀丟棄。
然鵝,實際情況是,顯卡無法保證自己輸出每一幀的時間間隔均勻,所以就會導致這樣一種情況:
0.0-0.1秒,顯示器刷新一次,顯卡輸出第1幀畫面,顯示器順利呈現第1幀。。
0.1-0.2秒,顯示器刷新一次,顯卡輸出第2幀、第3幀畫面,顯示器只呈現第3幀,第2幀被丟棄。
0.2-0.3秒,顯示器刷新一次,顯卡還沒來得及輸出第4幀,顯示器還是呈現剛才的第3幀。
0.3-0.4秒,顯示器刷新一次,顯卡輸出第四幀,顯示器呈現第4幀。
看出問題來了沒,如果0.1~0.2~0.3秒的情況大量出現,即顯示器刷新兩次只呈現了一個有效幀,我們就看到了卡頓。
所以說,從實際應用角度來說,顯卡額外多輸出一些幀還是有必要的,可以防止顯示器在刷新一次的時候沒得到新的幀,出現卡頓。
到這基本就回答了你的問題。
為了解決這種情況,出現了垂直同步、Gsync、Freesync等技術,有空再補充吧(沒人看就算了)。
————————來更新了————————
關於垂直同步技術:具體概念性和原理性的東西各位請自行百度,我不是做技術的,確實背不下來,還是用比較好理解的語言表達一下。
垂直同步很好的解決了畫面撕裂的問題,為什麼會出現撕裂呢?還是用上面的例子,這裡把60hz強行改成10hz為了方便計算和表達。
顯示器呈現畫面時,並不是「晴天霹靂,褲衩一下」把一整張畫面打到屏幕上的,而是用掃描的方式一行一行呈現,直到整個畫面完整出現,只不過這個過程太快了(實際是1秒鐘60次,我的舉例是1秒鐘10次),不出意外的情況下人眼感覺不出來。
意外是什麼呢?這裡接著上面的數據來說:
第0.4-0.5秒,顯示器刷新一次,顯卡輸出第5幀,正常來講,顯示器呈現第5幀。但這次出現了情況,顯示器掃描到屏幕下半截的時候,顯卡輸出了第6幀,顯示器是個實心眼,掃描屏幕下半截的時候,呈現了第6幀。
這時候就出現了兩幀各有一半出現在屏幕上的情況,即我們見到的畫面撕裂。
好了,為啥會撕裂解釋明白了,垂直同步怎麼解決這個問題呢?其實很簡單也有點坑爹,就是在出現上述情況的時候,告訴顯卡,第6幀你先等等吧,顯示器這正刷新著第5幀呢,你就別添亂了,抽根煙休息一下,下一個刷新周期你再輸出第6幀吧。
說到這裡,垂直同步有什麼缺點就很明顯了。
1.我們花了好幾千買回來的顯卡,並不是為了讓它抽根煙休息一下的。
2.垂直同步只解決了顯卡輸出幀數高於刷新率情況下的畫面撕裂問題。如果出現了上述0.2-0.3秒的情況,即顯示器刷新了一次,而顯卡並沒有輸出畫面,那麼垂直同步並沒有什麼辦法。所謂的開了垂直同步也穩不住60幀,大多是這種情況導致的。
於是狂(貴)拽(貴)炫(貴)酷(貴)的 G-sync和Free-sync技術粗線了。
這會兒比較忙,等等在更。
——————再來更一下———————
關於G和F技術,就是分屬於Nvdia家和AMD家,用於解決顯示器刷新和顯卡輸出同步問題的技術。原理不太一樣,效果是類似的。技術層面的我說不清楚,反正價格差別是挺大的。
之前的表述有錯誤,重新查閱資料後更正。
這倆技術跟垂直同步有啥區別呢?其實很簡單,上面提到了垂直同步是折騰顯卡,讓顯卡在輸出幀數超過顯示器刷新速度的時候伸個懶腰歇一會兒,而這兩個技術,折騰的是顯示器,即在顯示器中加入晶元,通過調整顯示器刷新率與顯卡幀率同步(但是不會突破標稱的刷新率上限,比如大家熟悉的144hz),來增加有效幀,盡量減少丟幀。
具體是啥樣的呢,我還是按照上面的例子來進行說明。
0.0-0.1秒,顯示器刷新一次,顯卡輸出第1幀畫面,顯示器順利呈現第1幀。。
0.1-0.2秒,顯示器刷新一次,顯卡輸出第2幀、第3幀畫面。原來的情況是顯示器只呈現第3幀,第2幀被丟棄。好了,現在你開啟了高貴的Gsync技術,顯示器刷新時間變成了這樣:
0.1-0.15秒,顯示器刷新一次,呈現第2幀,第0.15-0.2秒,顯示器又刷新了一次,呈現第3幀。
上述是顯卡性能高,輸出幀數多的情況,那麼如果顯卡慢了呢?我們繼續看
0.2-0.3秒,顯卡沒有輸出新的幀,原本的情況下顯示器會白白的刷新一次,好了,現在你開啟了高貴的Gsync技術,顯示器就不再刷新了,而是會等待顯卡輸出下一幀再刷新。
讀到這裡,我們就知道了Gsync技術是優於垂直同步技術的:如果顯卡輸出幀率過低(比如30幀),顯示器還是老老實實的0.1秒刷一次,再加上幀生成時間不均勻的因素,可能實際呈現的還不到30幀,那我們看到的畫面,就會十分卡頓。好了,這時候你開啟了高貴的Gsync技術,顯示器會通過調整刷新率(多等等顯卡),來保證盡量輸出多的有效幀,降低卡頓(一般不低於30幀,低於30幀Gsync也沒轍了)。
綜上所述,通過調整刷新率,支持Gsync的技術顯示器進可解決撕裂,退可搞定卡頓。
所以很貴。
G-sync也不是沒有缺點的,比較常說的一點是會增加輸入延遲,所以電競選手很多時候得忍受撕裂,也不能開G-sync。當然也不是絕對的,我們來看如下兩種情況:
1.你用144hz顯示器,你的顯卡特別叼,每秒可以輸出200多幀(即遠高於顯示器刷新率上限),那麼就不用開了,開了反而提高延遲。
2.你用144hz顯示器,你的顯卡不夠叼,每秒只能輸出130幀左右,那麼為了防止顯示器呈現的幀數還不到130,那麼最好開啟G-sync技術,讓這130幀都呈現出來,提高流暢度。
全文完。
不對,沒完還有一句。
還不趕緊加錢買好顯卡?
以前我也問過差不多的問題,查了些資料,問了一些大神。算是有了一個大致的了解吧。我分幾種情況說一下吧!
- 理想狀態,每秒鐘60幀畫面,顯卡渲染每一幀畫面都是剛好用時1/60秒。顯示的時候大概是這樣的
當然,這樣完美的狀況只存在在童話里。現實並不會這樣完美
- 一般情況,這裡以每秒渲染畫面大概在60幀左右,但每幀生成的時間不定。示例第一幀1/80s、第二幀1/60s、第三第四幀1/48s。
可以看到在一個畫面里會同事顯示不同的兩幀畫面。也就是畫面撕裂就可能出現像下圖這樣的狀況。當然一般不會偏移得這麼嚴重
- 垂直同步。為了解決畫面撕裂的問題,開始引入垂直同步。也就是顯示器把一幀顯示完了,顯卡再去渲染下一幀。(或者說把顯卡渲染完的先存著,先把這一張畫面顯示出來再說)同樣使用上面1/80s、1/60s、1/48s作示例
這樣可以保證每一幀的畫面都是完整的,不會出現電線杆移位這樣的情況出現。第三幀使用時間超過了1/60秒,但是顯示器等不到第三幀就把第二幀多顯示了一次。一幀畫面多項式一次,那相當於這一小段時間的幀率降了一半。如果這樣的情況多了,畫面就會變得比較卡。打遊戲時開了垂直同步還fps卻在57、58這樣,那就應該是每秒出現了兩三次這樣的情況。
- Gsync/Freesync。這應該是目前最完美的解決方案了。第三幀還沒渲染完,那麼顯示器就等一下吧。
沒有了畫面撕裂,第三幀還沒渲染完的時候,稍微等一下,雖然不是60fps了,但也不至於一下子幀率暴降。但這項技術需要顯示器支持,而且A卡、N卡標準不一樣還互不兼容。希望早點可以統一標準/兼容吧!
第一種情況算是完美,單只存在童話的世界。
第二種情況會出現畫面撕裂,但幀數不上不上不下時會比垂直同步看起來流暢。
垂直同步不會出現畫面撕裂。如果性能給力,保證每幀每幀生成時間小魚1/60s,那麼就到了通話里的世界了。但若性能不給力,畫面更易卡頓(這也是遊戲不該只看幀率,更該關注幀生成時間的原因)
Gsync/Freesync,幾乎完美解決二三種情況所面臨的問題。同時現在大部分Gsync/Freesync顯示器的刷新率都在120幀、144幀。甚至240幀。如果性能夠強,可以讓你體驗到絲般順滑的畫面!
P.S.這裡的圖示只是大概示意一下,忽略了一下響應速度之類的東西,如有興趣可以自己讀些資料。
這是一個我問的相關問題的龔大的回答。不開啟垂直同步的時候,顯示器是怎樣顯示畫面的? - 叛逆者的回答 - 知乎另幾個答案也寫的不錯,有興趣的請移步。根據我的觀察與學習,我覺得自己大概可以解釋一下。不想看原理可以直接跳到結論部分。
首先顯示器畫面是由許多像素規律性排列組成的,這個我猜你已經知道了。
很久以前顯卡只是負責輸出顯示畫面,不負責2D/3D加速的,畫面渲染由CPU及2D/3D加速卡完成,他們是一幀一幀給顯卡輸出畫面的。由於還沒有垂直同步,CPU或2D/3D加速卡是全速運轉的,發現這一幀畫面渲染完,就立刻交給顯卡並開始計算下一幀畫面,至於輸出到顯示器時是什麼樣,那是顯卡的事,和他們沒什麼關係。
顯卡給顯示器輸出畫面卻並不是一幀一幀輸出的,而是一個像素一個像素輸出的(與之相對,膠片電影放映就是一幀一幀輸出),而且是按照從左到右,從上向下的行列時序,就像人在方格紙上寫字一樣,寫完一個字換格,寫完一行換行,寫完一頁換頁。如你所見,大多數顯示器都是這樣每秒鐘刷新60次所有像素。而且這裡注意,這個過程停不下來,即使系統已經死機了,顯卡也得每秒60幀刷啊刷。
渲染好的畫面交給顯卡後,顯卡就開始著手輸出,此時假設解析度設為800*600@60hz,顯卡發現正好刷到顯示器最後一個像素,於是就可以開心地把新畫面刷到顯示器上了,老規矩,一個像素一個像素來。
這時問題來了,由於CPU或2D/3D加速卡遇到複雜場景,顯示器上幅畫面都刷完了他們還沒搞出新畫面來,顯卡表示比較鬱悶,只好把舊畫面刷了一遍又一遍,這時用戶就會明顯地感覺到卡了。
直到舊畫面刷第三次的時候,CPU和2D/3D加速卡終於搞出了新畫面,交付給顯卡。顯卡此時正在刷第500行的第80個像素(瞎編的),一看新畫面來了很開心,立即將新畫面的從第500行第81個像素開始按次序刷到顯示器上,於是顯示器上直到最後一個像素刷新完成時,第500行的第81個像素後面的像素全部都是新畫面,之前的的依舊是舊畫面。
這就出現了一個問題:新畫面和舊畫面是同時存在於顯示器上的,這看起來該什麼樣的?在3D遊戲里,這個現象很普遍,就是被稱為畫面撕裂的現象。你可以試試任意找一個可以控制垂直同步開關的3D遊戲,你的硬體系統完全可以負擔得起該遊戲60幀以上流暢運行,並分別開關垂直同步對比區別。這個現象在全屏勻速緩慢運動的畫面(如視角轉動)上尤為明顯。
後來人們為了解決畫面撕裂問題,就搞出了垂直同步,其實就是顯卡在刷新完顯示器畫面的時候通知CPU和2D/3D加速卡,然後他們再把渲染好的畫面給顯卡。有時顯卡極快,顯卡輸出畫面還沒刷幾行,2D3D加速卡就已經完成了渲染,但是沒辦法,還是要等顯卡刷完一幅畫面並發來信號。
也就是這樣:假設關閉垂直同步、顯示器為60hz、CPU與2D/3D加速卡輸出120fps畫面時,顯示器會每秒顯示120幅半張畫面,其它幀率可以以此類推。
那麼我的結論就是:幀率大於刷新率可以增加實時性(操作響應變快),但是會帶來畫面撕裂。
再後來某些知名顯卡廠商就搞出了 Freesync和G-sync,幾乎完美結合了開啟垂直同步和關閉垂直同步的優點。不完美之處就是比較貴。
首先顯卡處理圖像的時間是不均勻的,如60幀的畫面顯卡可能0.2秒處理了50幅畫面,剩下的10幅
畫面可能花費了0.8秒,而一台60hz的顯示器刷新的間隔是一定的,所以一個刷新周期,顯卡可能
向顯示器傳遞了多幅畫面,但顯示器在一個刷新周期只顯示了一幅畫面,其他的畫面就這樣
被「吞」掉了,也有可能在好幾個刷新周期里,顯卡只傳輸出一幅畫面,這時候就會造成卡頓,所
以一般來說最好顯卡的FPS要大於顯示器刷新率,這樣可以降低卡頓。
理想中超過60fps的渲染在60hz屏幕上和正好60fps是一樣的效果但是實際上顯卡渲染60fps不代表每一幀之間都是穩定1/60s的幀間隔,高於1/60s的渲染時間會導致當前幀要多等待一個屏幕刷新再顯示,會造成卡頓當顯卡性能較好,表面上是fps超過60,每幀渲染時間更容易小於1/60s,提高流暢度
我1060 3g 顯卡 配17 6700k 屏幕是19寸acer LOL開全特效 FPS200-400 會很閃屏幕 然而降低fps 鎖定在 80 以下 或者等待垂直同步會不閃了 ,,,是你說的這個意思嗎
不會,高端顯卡提高更多的幀數,你顯示器所篩選出來的60幀和你眼球所能看到的30幀 將會因為顯卡提供的幀數基數更大而顯得更加連貫。
推薦閱讀:
※為什麼計算機依舊採用像素來顯示輸出圖像而不採取矢量等其他方式?
※怎麼評價 TCL 推出的量子點電視?
※如何選擇顯示器?
※27 寸顯示器和 24 寸顯示器在使用感受上有多大差別?
※為什麼顯示器比電視貴?