對于廣大玩家們而言,影響游戲體驗的一大元兇,就當屬卡頓和畫面撕裂了,特別是在玩動作游戲時,卡頓影響發揮的情況讓人想要砸鍵盤。
我依稀記得,曾經玩《阿卡姆之城》最高難度因為機能不行掀桌子砸鍵盤的黑歷史,那種按下按鍵過了將近一秒才能得到回應的體驗讓人無比的光火。
但最后還是硬著頭皮打穿了,二十多幀的游戲體驗,為什么要跟鍵盤過不去呢,不如去換電腦。..
其實,造成這一切的,不單單只是硬件水平的問題,比如說,同樣的硬件,驅動版本有問題的話,也會影響性能的發揮。
而卡頓的表現也不只有幀率低的情況,高幀率卡頓的情況也會影響游戲的表現,辨別卡頓的方法,除了看幀率外,還可以通過幀時間鑒別。
幀率是口鍋,什么都能裝
“哎呀,又掉幀了”,一般遇到游戲卡頓大家都會這么說,但對另一些同學來說,幀率卻仍然是一個非常陌生的名詞——游戲卡頓,和掉幀有什么關系呢?
事實上,幀率指的是平均一秒內,游戲更新顯示了多少張“畫面”——同動畫和電影一樣,游戲呈現給玩家的方式,也是通過快速的畫面更迭來實現動態的畫面的。
這是利用了視覺暫留現象實現的,由于人類眼睛的生理結構,如果每秒能更新超過16張連續的畫面的話,就會給人一種“畫面連貫”的錯覺。
但不同的是,3D圖形渲染的機制,就決定了動畫和電影中一些能夠造成“動態視覺”的設計方法難以同樣地應用。
因而在3D游戲當中,就需要更高地幀率來實現動態的畫面,這也是為什么人們常說需要至少30幀的原因(當然,30幀只是最低要求,如果有足夠刷新率的顯示器,能夠以更高的幀率來運行游戲,自然是更好的)。
一般來說,幀率已經足以反映游戲體驗是否流暢了,不過,它其實是不能詳實可信地反映游戲運行過程中實際情況的——如前面所說,動畫和游戲實際上是通過視覺暫留現象來實現動態畫面的。
而具體到游戲而言,則需要至少每秒30張畫面(也就是30fps)才能保證人眼不會明顯地感受到卡頓,但幀率作為計算方式計算的實際上是每秒的平均幀率,它并不能準確地反映這一秒內硬件渲染畫面的真實情況。
你需要幀時間來救場
這個時候,就可以求助于幀時間來更為詳細地分析卡頓的情況了——幀時間指的是硬件渲染每幀畫面的時間(也可以說是每一幀畫面的繪制時間),它的計量單位是毫秒(ms)。
理想情況下,當我們游玩某一游戲獲得每秒60幀的幀率時,它每幀畫面在1秒鐘(1000毫秒)內停留的時間應當精確于16.7毫秒。
但實際上,游戲在實時運算時,隨著畫面的變化,顯卡、CPU、內存等硬件由于需要互相協調運作,因而每幀生成的時間間隔,并不一定穩定地在一個理想的數值。
比如說,極端情況下,一秒鐘內,如果前500毫秒渲染了60幀,在后500毫秒沒有渲染任何幀,這樣雖然幀率測量結果將仍將顯示為平均60fps,但在那沒有渲染的500毫秒內,人眼是會感受到圖像信息沒有變化的,這樣的體驗基本就可以稱之為卡頓了。
當然,這只是個極端的例子,但在實際情況中,30fps的理想幀時間是33.3ms,如果高于這個數字,人眼就有可能感受到卡頓。
簡單來說,較高幀數下出現的卡頓問題正是幀生成時間不穩定導致的,當硬件無法及時處理游戲數據的實時運算時,就會出現一些生成時間驚人的幀,這時即使硬件已經處理好這一幀后面的數十個幀了。
因此,為了獲得流暢的游戲體驗,高幀率和穩定的低水平幀時間就缺一不可了。
你們猜,下面這種情況,你們覺得實際游戲體驗有沒有出現卡頓呢?
真相只有一個!卡頓卻不是
硬件是造成卡頓和掉幀的第一元兇?硬件當然是出現卡頓時人們通常能想到的原因——執行游戲后臺進行的計算工作的,是處理器,將數據傳輸給處理器的,則是內存。
面對日益復雜精美的圖形畫面,顯卡多年來一直都在風中搖擺,價位的差異,基本上就是計算機硬件水平的劃分,五千的游戲本,自然和一萬的游戲本能完成的工作是有著天壤之別的(臺式機同理)。
更好的計算機硬件,能同時處理更多的數據,應對更為復雜的工作,支持更新的圖像技術——從DX8到DX12,這幾年游戲畫面的進步也是有目共睹的——需要占用至少3.5GB顯存的游戲用4GB顯存的顯卡運行,出現卡頓也是正常的了。
因而,人們面對卡頓第一時間懷疑是自己硬件的鍋,也是很正常的,畢竟——沒那能力硬攬瓷器活是會翻車的。
驅動也來湊熱鬧!
另外,驅動程序也在很大程度上影響著硬件的性能發揮,我就曾經遇到過某一版本的驅動導致游戲幀數下降了一大半不到二十幀的情況。
嚇得我趕緊回滾至前一個版本了(其實一開始玩新游還以為是硬件不行,后來發現玩之前的游戲也這樣。..)。
但這又是因為什么呢?我們先來了解一下驅動是什么——設備驅動程序(英語:device driver),簡稱驅動程序(driver)。
是一個允許高端(High level)計算機軟件(computer software)與硬件(hardware)交互的程序,這種程序創建了一個硬件與硬件,或硬件與軟件溝通的接口,經由主板上的總線(bus)或其它溝通子系統(subsystem)與硬件形成連接的機制,以使得硬件設備(device)上的數據交換成為可能。
由于驅動程序需要對硬件功能進行低級訪問才能運行,因此驅動程序通常也是在高特權的環境中運行的,如果出現問題,幾乎可以肯定會導致系統的運行出現問題。
這也是為什么編寫驅動程序的任務通常軟件工程師或計算機工程師來完成的,這是因為他們比大多數人有更好的信息來設計他們的硬件。
因此,驅動程序的表現直接決定了硬件的實際效能輸出,如果某個版本的驅動更新出現了問題,就會遇到我之前遇到的性能問題。
好在,一流的軟件工程師和計算機工程師也不是吃素的,因而,一般在后續的版本更新里也會修復這些問題。
落井下石的游戲負優化
那我大幾萬買的筆記本/臺式機為什么有時候玩一款游戲也會卡頓呢?這就不得不說到游戲公司有時候令人驚訝的“負優化”的。
事實上,除了負責硬件數據輸出效率的驅動,在制作游戲時,游戲中要出現多少素材,怎樣優化硬件數據傳輸的效率,也都會影響到最終的游戲體驗(比如寒霜朋克玩到后期就會出現這個問題)。
比如說,2007年的二戰即時戰略游戲《英雄連》,如果正常游玩的話,用現在的游戲本來運行就能保持到一個很高的幀率水平。
但是在開啟了修改器取消人口上限后,幾百個小分隊擠在屏幕中央的畫面的確看起來雖然十分的壯觀,但同時也會因為占用過多的系統資源而不可避免地發生卡頓的情況。
事實上,許多游戲在設計時就是通過減少場景內不必要的素材來提高游戲的效能表現的,而一些取巧的設計思路也能產生不錯的效果。
著名的射擊游戲《使命召喚》系列,就是以區域內素材的使用見長的。
它將游戲使用的素材集中于設計好的“必經道路”上,不僅避免了浪費機能的情況,還給玩家們帶來了一流的電影化體驗(事實上,有一段時間里,一些玩家是把COD當互動電影來對待的)。
而另一種常見的解決方案,大概就屬游戲設計當中的紙片山紙片人了——這種設計大大減少了硬件的數據處理量,還在一定程度上保證了視覺效果的體驗。
而硬件應用效率的問題,則分別和游戲所使用的引擎和開發人員的技術功底有關。
前者主要是引擎本身采用的算法可能導致的效能問題,而后者則在于對游戲運行過程中對硬件使用的優化——如何更加高效地運用內存、顯存還有處理器,是開發人員在技術層面一直試圖不斷突破的一種能力。
而負優化的情況,基本上就是反面教材了。
總之
總而言之,面對游戲畫面卡頓的情況,硬件和軟件都有可能是造成這一切的元兇,升級硬件,降低畫面設置誠然是一種不錯的選擇。
不過識別卡頓的真正原因,對對癥下藥,更新驅動或是放棄一款游戲,也是游玩過程中需要注意的,用幀時間來分析游戲運行狀況,就能更為清晰地了解實情,是升級硬件,還是更換驅動,怎樣選擇也就一目了然了。
在追求極致游戲體驗的道路上,怎樣能少花錢多辦事,玩得舒心,還是一門值得研究的學問呢!
-
電腦
+關注
關注
15文章
1695瀏覽量
68802 -
幀率
+關注
關注
0文章
10瀏覽量
2613
發布評論請先 登錄
相關推薦
評論