0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

游戲畫面卡頓是什么原因

454398 ? 來源:工程師吳畏 ? 2019-04-18 10:13 ? 次閱讀

對于廣大玩家們而言,影響游戲體驗(yàn)的一大元兇,就當(dāng)屬卡頓和畫面撕裂了,特別是在玩動作游戲時,卡頓影響發(fā)揮的情況讓人想要砸鍵盤。

我依稀記得,曾經(jīng)玩《阿卡姆之城》最高難度因?yàn)闄C(jī)能不行掀桌子砸鍵盤的黑歷史,那種按下按鍵過了將近一秒才能得到回應(yīng)的體驗(yàn)讓人無比的光火。

但最后還是硬著頭皮打穿了,二十多幀的游戲體驗(yàn),為什么要跟鍵盤過不去呢,不如去換電腦。..

其實(shí),造成這一切的,不單單只是硬件水平的問題,比如說,同樣的硬件,驅(qū)動版本有問題的話,也會影響性能的發(fā)揮。

而卡頓的表現(xiàn)也不只有幀率低的情況,高幀率卡頓的情況也會影響游戲的表現(xiàn),辨別卡頓的方法,除了看幀率外,還可以通過幀時間鑒別。

幀率是口鍋,什么都能裝

“哎呀,又掉幀了”,一般遇到游戲卡頓大家都會這么說,但對另一些同學(xué)來說,幀率卻仍然是一個非常陌生的名詞——游戲卡頓,和掉幀有什么關(guān)系呢?

事實(shí)上,幀率指的是平均一秒內(nèi),游戲更新顯示了多少張“畫面”——同動畫和電影一樣,游戲呈現(xiàn)給玩家的方式,也是通過快速的畫面更迭來實(shí)現(xiàn)動態(tài)的畫面的。

這是利用了視覺暫留現(xiàn)象實(shí)現(xiàn)的,由于人類眼睛的生理結(jié)構(gòu),如果每秒能更新超過16張連續(xù)的畫面的話,就會給人一種“畫面連貫”的錯覺。

但不同的是,3D圖形渲染的機(jī)制,就決定了動畫和電影中一些能夠造成“動態(tài)視覺”的設(shè)計(jì)方法難以同樣地應(yīng)用。

因而在3D游戲當(dāng)中,就需要更高地幀率來實(shí)現(xiàn)動態(tài)的畫面,這也是為什么人們常說需要至少30幀的原因(當(dāng)然,30幀只是最低要求,如果有足夠刷新率的顯示器,能夠以更高的幀率來運(yùn)行游戲,自然是更好的)。

一般來說,幀率已經(jīng)足以反映游戲體驗(yàn)是否流暢了,不過,它其實(shí)是不能詳實(shí)可信地反映游戲運(yùn)行過程中實(shí)際情況的——如前面所說,動畫和游戲?qū)嶋H上是通過視覺暫留現(xiàn)象來實(shí)現(xiàn)動態(tài)畫面的。

而具體到游戲而言,則需要至少每秒30張畫面(也就是30fps)才能保證人眼不會明顯地感受到卡頓,但幀率作為計(jì)算方式計(jì)算的實(shí)際上是每秒的平均幀率,它并不能準(zhǔn)確地反映這一秒內(nèi)硬件渲染畫面的真實(shí)情況。

你需要幀時間來救場

這個時候,就可以求助于幀時間來更為詳細(xì)地分析卡頓的情況了——幀時間指的是硬件渲染每幀畫面的時間(也可以說是每一幀畫面的繪制時間),它的計(jì)量單位是毫秒(ms)。

理想情況下,當(dāng)我們游玩某一游戲獲得每秒60幀的幀率時,它每幀畫面在1秒鐘(1000毫秒)內(nèi)停留的時間應(yīng)當(dāng)精確于16.7毫秒。

但實(shí)際上,游戲在實(shí)時運(yùn)算時,隨著畫面的變化,顯卡、CPU、內(nèi)存等硬件由于需要互相協(xié)調(diào)運(yùn)作,因而每幀生成的時間間隔,并不一定穩(wěn)定地在一個理想的數(shù)值。

比如說,極端情況下,一秒鐘內(nèi),如果前500毫秒渲染了60幀,在后500毫秒沒有渲染任何幀,這樣雖然幀率測量結(jié)果將仍將顯示為平均60fps,但在那沒有渲染的500毫秒內(nèi),人眼是會感受到圖像信息沒有變化的,這樣的體驗(yàn)基本就可以稱之為卡頓了。

當(dāng)然,這只是個極端的例子,但在實(shí)際情況中,30fps的理想幀時間是33.3ms,如果高于這個數(shù)字,人眼就有可能感受到卡頓。

簡單來說,較高幀數(shù)下出現(xiàn)的卡頓問題正是幀生成時間不穩(wěn)定導(dǎo)致的,當(dāng)硬件無法及時處理游戲數(shù)據(jù)的實(shí)時運(yùn)算時,就會出現(xiàn)一些生成時間驚人的幀,這時即使硬件已經(jīng)處理好這一幀后面的數(shù)十個幀了。

因此,為了獲得流暢的游戲體驗(yàn),高幀率和穩(wěn)定的低水平幀時間就缺一不可了。

你們猜,下面這種情況,你們覺得實(shí)際游戲體驗(yàn)有沒有出現(xiàn)卡頓呢?

真相只有一個!卡頓卻不是

硬件是造成卡頓和掉幀的第一元兇?硬件當(dāng)然是出現(xiàn)卡頓時人們通常能想到的原因——執(zhí)行游戲后臺進(jìn)行的計(jì)算工作的,是處理器,將數(shù)據(jù)傳輸給處理器的,則是內(nèi)存。

面對日益復(fù)雜精美的圖形畫面,顯卡多年來一直都在風(fēng)中搖擺,價(jià)位的差異,基本上就是計(jì)算機(jī)硬件水平的劃分,五千的游戲本,自然和一萬的游戲本能完成的工作是有著天壤之別的(臺式機(jī)同理)。

更好的計(jì)算機(jī)硬件,能同時處理更多的數(shù)據(jù),應(yīng)對更為復(fù)雜的工作,支持更新的圖像技術(shù)——從DX8到DX12,這幾年游戲畫面的進(jìn)步也是有目共睹的——需要占用至少3.5GB顯存的游戲用4GB顯存的顯卡運(yùn)行,出現(xiàn)卡頓也是正常的了。

因而,人們面對卡頓第一時間懷疑是自己硬件的鍋,也是很正常的,畢竟——沒那能力硬攬瓷器活是會翻車的。

驅(qū)動也來湊熱鬧!

另外,驅(qū)動程序也在很大程度上影響著硬件的性能發(fā)揮,我就曾經(jīng)遇到過某一版本的驅(qū)動導(dǎo)致游戲幀數(shù)下降了一大半不到二十幀的情況。

嚇得我趕緊回滾至前一個版本了(其實(shí)一開始玩新游還以為是硬件不行,后來發(fā)現(xiàn)玩之前的游戲也這樣。..)。

但這又是因?yàn)槭裁茨??我們先來了解一下?qū)動是什么——設(shè)備驅(qū)動程序(英語:device driver),簡稱驅(qū)動程序(driver)。

是一個允許高端(High level)計(jì)算機(jī)軟件(computer software)與硬件(hardware)交互的程序,這種程序創(chuàng)建了一個硬件與硬件,或硬件與軟件溝通的接口,經(jīng)由主板上的總線(bus)或其它溝通子系統(tǒng)(subsystem)與硬件形成連接的機(jī)制,以使得硬件設(shè)備(device)上的數(shù)據(jù)交換成為可能。

由于驅(qū)動程序需要對硬件功能進(jìn)行低級訪問才能運(yùn)行,因此驅(qū)動程序通常也是在高特權(quán)的環(huán)境中運(yùn)行的,如果出現(xiàn)問題,幾乎可以肯定會導(dǎo)致系統(tǒng)的運(yùn)行出現(xiàn)問題。

這也是為什么編寫驅(qū)動程序的任務(wù)通常軟件工程師或計(jì)算機(jī)工程師來完成的,這是因?yàn)樗麄儽却蠖鄶?shù)人有更好的信息來設(shè)計(jì)他們的硬件。

因此,驅(qū)動程序的表現(xiàn)直接決定了硬件的實(shí)際效能輸出,如果某個版本的驅(qū)動更新出現(xiàn)了問題,就會遇到我之前遇到的性能問題。

好在,一流的軟件工程師和計(jì)算機(jī)工程師也不是吃素的,因而,一般在后續(xù)的版本更新里也會修復(fù)這些問題。

落井下石的游戲負(fù)優(yōu)化

那我大幾萬買的筆記本/臺式機(jī)為什么有時候玩一款游戲也會卡頓呢?這就不得不說到游戲公司有時候令人驚訝的“負(fù)優(yōu)化”的。

事實(shí)上,除了負(fù)責(zé)硬件數(shù)據(jù)輸出效率的驅(qū)動,在制作游戲時,游戲中要出現(xiàn)多少素材,怎樣優(yōu)化硬件數(shù)據(jù)傳輸?shù)男?,也都會影響到最終的游戲體驗(yàn)(比如寒霜朋克玩到后期就會出現(xiàn)這個問題)。

比如說,2007年的二戰(zhàn)即時戰(zhàn)略游戲《英雄連》,如果正常游玩的話,用現(xiàn)在的游戲本來運(yùn)行就能保持到一個很高的幀率水平。

但是在開啟了修改器取消人口上限后,幾百個小分隊(duì)擠在屏幕中央的畫面的確看起來雖然十分的壯觀,但同時也會因?yàn)檎加眠^多的系統(tǒng)資源而不可避免地發(fā)生卡頓的情況。

事實(shí)上,許多游戲在設(shè)計(jì)時就是通過減少場景內(nèi)不必要的素材來提高游戲的效能表現(xiàn)的,而一些取巧的設(shè)計(jì)思路也能產(chǎn)生不錯的效果。

著名的射擊游戲《使命召喚》系列,就是以區(qū)域內(nèi)素材的使用見長的。

它將游戲使用的素材集中于設(shè)計(jì)好的“必經(jīng)道路”上,不僅避免了浪費(fèi)機(jī)能的情況,還給玩家們帶來了一流的電影化體驗(yàn)(事實(shí)上,有一段時間里,一些玩家是把COD當(dāng)互動電影來對待的)。

而另一種常見的解決方案,大概就屬游戲設(shè)計(jì)當(dāng)中的紙片山紙片人了——這種設(shè)計(jì)大大減少了硬件的數(shù)據(jù)處理量,還在一定程度上保證了視覺效果的體驗(yàn)。

而硬件應(yīng)用效率的問題,則分別和游戲所使用的引擎和開發(fā)人員的技術(shù)功底有關(guān)。

前者主要是引擎本身采用的算法可能導(dǎo)致的效能問題,而后者則在于對游戲運(yùn)行過程中對硬件使用的優(yōu)化——如何更加高效地運(yùn)用內(nèi)存、顯存還有處理器,是開發(fā)人員在技術(shù)層面一直試圖不斷突破的一種能力。

而負(fù)優(yōu)化的情況,基本上就是反面教材了。

總之

總而言之,面對游戲畫面卡頓的情況,硬件和軟件都有可能是造成這一切的元兇,升級硬件,降低畫面設(shè)置誠然是一種不錯的選擇。

不過識別卡頓的真正原因,對對癥下藥,更新驅(qū)動或是放棄一款游戲,也是游玩過程中需要注意的,用幀時間來分析游戲運(yùn)行狀況,就能更為清晰地了解實(shí)情,是升級硬件,還是更換驅(qū)動,怎樣選擇也就一目了然了。

在追求極致游戲體驗(yàn)的道路上,怎樣能少花錢多辦事,玩得舒心,還是一門值得研究的學(xué)問呢!

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • 電腦
    +關(guān)注

    關(guān)注

    15

    文章

    1661

    瀏覽量

    68196
  • 幀率
    +關(guān)注

    關(guān)注

    0

    文章

    8

    瀏覽量

    2597
收藏 人收藏

    評論

    相關(guān)推薦

    什么原因導(dǎo)致壓力傳感器漂移?

    什么原因導(dǎo)致壓力傳感器漂移的呢?我們在設(shè)計(jì)的時候怎么才能消除壓力傳感器漂移呢?
    的頭像 發(fā)表于 08-22 18:00 ?647次閱讀
    <b class='flag-5'>什么原因</b>導(dǎo)致壓力傳感器漂移?

    esp32s3 ota升級過程中,RGBLCD+LVGL顯示異常,屏幕畫面閃爍跳動是什么原因導(dǎo)致的?

    esp32s3 ota升級過程中,RGBLCD+LVGL顯示異常,屏幕畫面閃爍跳動,不進(jìn)行ota升級時,LCD顯示正常,這有可能是什么原因導(dǎo)致嗎?
    發(fā)表于 06-27 08:10

    esp32-s3驅(qū)動rgb屏刷屏,花屏是什么原因?

    。還有設(shè)置timings.pclk不能超過8mhz,不然就會花屏是什么原因?是esp32-s3的一些配置沒有開啟嗎?
    發(fā)表于 06-19 06:21

    無刷直流電機(jī)原因?

    不規(guī)則的出現(xiàn)(就好像有東西阻擋了一下,只是一瞬間的),但是電機(jī)可以正常運(yùn)行,不知道是什么原因,有高手支招沒有。 非常感謝大家!祝新年好。
    發(fā)表于 05-08 07:31

    STM8L的RTC時鐘什么原因導(dǎo)致的?

    ); RTC_WakeUpCmd(ENABLE); } } 上面程序段是我來回切換RTC時間的函數(shù),可是從1s切換到100ms時會出現(xiàn)的時間有長有短,我初步判斷是RTC
    發(fā)表于 04-18 08:25

    提升企業(yè)組網(wǎng)效率:如何徹底解決網(wǎng)絡(luò)問題

    頓成為了辦公室常見的困擾,嚴(yán)重影響了工作效率和員工的心情。網(wǎng)絡(luò),你受夠了嗎? 網(wǎng)絡(luò)的程度可以分為三個級別: 第一級:輕微
    的頭像 發(fā)表于 04-01 17:58 ?489次閱讀

    磁環(huán)繞線電感溫度高什么原因

    電子發(fā)燒友網(wǎng)站提供《磁環(huán)繞線電感溫度高什么原因.docx》資料免費(fèi)下載
    發(fā)表于 03-29 14:46 ?0次下載

    電腦閃屏是什么原因,怎么解決?

    電腦閃屏是什么原因,怎么解決? 電腦閃屏是指計(jì)算機(jī)屏幕在使用過程中出現(xiàn)頻繁的黑屏、白屏或閃爍的現(xiàn)象。這種問題可能會給用戶帶來極大的困擾,影響正常的使用體驗(yàn)。造成電腦閃屏的原因有很多,比如硬件故障
    的頭像 發(fā)表于 12-25 11:21 ?5554次閱讀

    超越,突破瓶頸!華為云耀 L 實(shí)例引領(lǐng)中小企業(yè)游戲開發(fā)新風(fēng)潮

    成本控制往往成為創(chuàng)業(yè)初期的難題。尤其是游戲卡、延時和崩潰等問題,不僅影響用戶體驗(yàn),也直接關(guān)系到市場競爭力。 最近,天極網(wǎng)發(fā)布了《2023 年前三季度中國中小企業(yè)上云報(bào)告》。報(bào)告指出:83%中小企業(yè)上云更看重安全可靠性。而華
    的頭像 發(fā)表于 12-11 14:22 ?782次閱讀
    超越<b class='flag-5'>卡</b><b class='flag-5'>頓</b>,突破瓶頸!華為云耀 L 實(shí)例引領(lǐng)中小企業(yè)<b class='flag-5'>游戲</b>開發(fā)新風(fēng)潮

    LED測試不當(dāng),會發(fā)生電應(yīng)力損傷:你知道這是什么原因嗎?

    LED測試不當(dāng),會發(fā)生電應(yīng)力損傷:你知道這是什么原因嗎?
    的頭像 發(fā)表于 12-05 11:38 ?420次閱讀

    測電纜相間絕緣時,短路什么原因?

    測電纜相間絕緣時,短路什么原因? 測電纜相間絕緣時,出現(xiàn)短路有多種不同的原因。這些原因可以歸結(jié)為設(shè)計(jì)、制造、施工、維護(hù)和環(huán)境等方面的因素。詳細(xì)了解和理解這些原因對于預(yù)防和解決電纜短路問
    的頭像 發(fā)表于 11-17 12:36 ?852次閱讀

    L298N驅(qū)動電機(jī)什么原因

    L298N驅(qū)動電機(jī)什么原因
    發(fā)表于 11-01 06:56

    電容器經(jīng)常鼓包是什么原因?

    電容器是電子設(shè)備中常用的一種元件,用于存儲和釋放電荷。然而,經(jīng)常有人發(fā)現(xiàn)電容器出現(xiàn)鼓包的情況,這是由于什么原因呢?
    的頭像 發(fā)表于 10-26 14:26 ?8143次閱讀
    電容器經(jīng)常鼓包是<b class='flag-5'>什么原因</b>?

    什么是凹槽效應(yīng)?什么原因引起的?怎么抑制這種異常效應(yīng)呢?

    在刻蝕SOI襯底時,通常會發(fā)生一種凹槽效應(yīng),導(dǎo)致刻蝕的形貌與預(yù)想的有很大出入。那么什么是凹槽效應(yīng)?什么原因引起的?怎么抑制這種異常效應(yīng)呢?
    的頭像 發(fā)表于 10-11 18:18 ?1618次閱讀
    什么是凹槽效應(yīng)?<b class='flag-5'>什么原因</b>引起的?怎么抑制這種異常效應(yīng)呢?

    無刷電機(jī)在換向的時候有怎么解決?

    遇到換向的情況要怎么解決
    發(fā)表于 10-11 06:26