幀數(shù)是什么意思(游戲中的“幀數(shù)”“幀率”都是什么意思)
數(shù)據(jù)總能讓你直觀地去判斷一個(gè)游戲的好壞。銷量,售價(jià),評分,這些數(shù)字總能引起我們的購買欲望。但是還有一組特殊數(shù)據(jù),要是它達(dá)不到要求,估計(jì)你會(huì)連玩游戲的欲望也沒有了。我們都知道《最后生還者》是一款把PS3機(jī)能發(fā)揮到極致的游戲,其精美的畫面總是讓我們流連忘返,但你一定不希望它卡成精美的PPT吧?所以在談?wù)摫姸嘤螒驍?shù)據(jù)時(shí),我們永遠(yuǎn)繞不開一個(gè)老生常談的話題——那就是游戲的幀率。
你不會(huì)想玩只有10幀的《最后生還者》吧?
首先我必須澄清一點(diǎn),就是在我們口頭討論游戲流暢度的時(shí)候,總是把“幀數(shù)”(Frame)和“幀率”(Frame rate)混為一談。其實(shí)在評測游戲流暢度的時(shí)候,幀率才是那個(gè)重要的指標(biāo),而不是幀數(shù)。關(guān)于這一點(diǎn)我會(huì)在下文中展開講。
那么為什么幀率那么重要呢?所有的老玩家應(yīng)該都知道幀率是游戲體驗(yàn)的基石,它的高低與穩(wěn)定與否直接決定了游戲的流暢性與可玩度。是的,幀率幾乎是游戲流暢的全部。那我們就自然而然地引出下一個(gè)問題:幀率是不是越高越好呢?其實(shí)不然,具體原因《游戲幀數(shù):并非越高越好,穩(wěn)定更重要》這篇文章已經(jīng)說的很清楚了。但這里我想補(bǔ)充的是:除了幀率,幀生成時(shí)間與單幀畫面(不撕裂)對游戲體驗(yàn)來說也很重要。
說到這里,有些玩家可能已經(jīng)有點(diǎn)暈了。所以在正片開始之前呢,我提議以小時(shí)候經(jīng)常玩的翻頁動(dòng)畫為切入點(diǎn),讓我們先對幾個(gè)關(guān)于幀的重要概念做一個(gè)大致的回顧。
小時(shí)候常玩的翻頁動(dòng)畫
幀(Frame):一幅字畫叫一幀,這是字典上對幀的解釋。其實(shí)在游戲中大致也是如此,幀就是影像動(dòng)畫中最小單位的單幅影像畫面。簡單地來說,一幀就是一副靜止的畫面,連續(xù)的幀就形成了流暢的動(dòng)畫。拿翻頁動(dòng)畫舉例的話,其中的一頁就代表著一幀。其實(shí)游戲也是這么動(dòng)起來的,只不過在這里“翻”的這個(gè)過程是由計(jì)算機(jī)來完成的。
幀數(shù)(Frames)/幀率(Frame Rate):普通玩家平時(shí)很容易混淆這兩個(gè)概念。幀數(shù)指一般指單位時(shí)間內(nèi)幀的生成數(shù)量,而幀率指的則是單位時(shí)間內(nèi)顯示的幀數(shù)(一般以FPS為單位)。先舉個(gè)簡單的例子:就像翻頁動(dòng)畫,幀數(shù)代表著你翻到的那一頁的頁數(shù),而幀率則代表你翻頁的速度。
再舉一個(gè)不算復(fù)雜的例子:如果一個(gè)動(dòng)畫在一秒鐘內(nèi)的幀數(shù)為60幀,兩秒鐘內(nèi)的幀數(shù)為120幀,那么它的幀率則為60FPS。如果平均幀率越高,那么畫面越流暢。值得一提的是:在主機(jī)上,30FPS一般是游戲流暢運(yùn)行的最低標(biāo)準(zhǔn),而60FPS則被認(rèn)為是比較完美的。
幀生成時(shí)間(Frame Time):顧名思義,幀生成時(shí)間指的就是渲染單獨(dú)一幀所需的時(shí)間。也就是在翻頁動(dòng)畫中翻一頁所需的時(shí)間,所以生成幀的時(shí)間一般非常短,通常以毫秒為單位。那這和游戲流暢度又有什么關(guān)系呢?讓我們先來做一點(diǎn)小小的計(jì)算:如某秒的幀數(shù)為30幀,那么已知每秒30幀是流暢游戲的最低標(biāo)準(zhǔn),1s又等于1000ms,所以平均每幀的生成時(shí)間為1000/30=33ms。也就是說只要每幀的生成時(shí)間小于33ms,那么我們是難以察覺到游戲中的卡頓的。如果幀生成時(shí)間忽上忽下,就算平均下來的FPS為30以上,整個(gè)游戲流程下來也不會(huì)太流暢。如果你不是很理解這個(gè)概念,下面這個(gè)幀生成時(shí)間圖能更好地幫助你更好地來理解這個(gè)概念(綠色代表流暢,紅色代表不流暢)。
33ms以下游戲就基本流暢了
說完了這么多,我想我們已經(jīng)對幀率分析的基本概念有了一個(gè)了解。在PC平臺(tái)上,我們可以輕松地借助第三方軟件(Fraps),或游戲自帶的跑分程序來對游戲里的幀率表現(xiàn)有一個(gè)了解;而在主機(jī)平臺(tái)上,我們沒有現(xiàn)成的工具去衡量,靠肉眼去判斷又不準(zhǔn)確客觀,但游戲里的掉幀我們又是有目共睹的。那應(yīng)該怎么辦呢。外媒Digital Foundry告訴我們主機(jī)的幀率分析一般分三步走:采集——分析——對比。下面就讓我們一步一步地進(jìn)行解析吧:
準(zhǔn)備工作
就像我之前講的,PC上有很多現(xiàn)成的工具(如Fraps)來測試游戲的幀率,但由于主機(jī)系統(tǒng)相對封閉,我們并不能在游戲主機(jī)上直接測試游戲的幀率表現(xiàn)。在這里,我們選擇“曲線救國”的方式:即先把主機(jī)的畫面搬到PC上,然后再對畫面里的幀率進(jìn)行分析。在整個(gè)過程中,“搬”這個(gè)至關(guān)重要的步驟就由采集卡負(fù)責(zé)。我們都知道,一塊采集卡能把來自主機(jī)的信號(hào)轉(zhuǎn)換為電腦視頻文件,而這些可打開的視頻便為游戲日后的分析埋下了基礎(chǔ)。不過在這里,我想強(qiáng)調(diào)的是:這塊采集卡必須足夠貴,足夠高端(1080P 60FPS起步),也只有這樣,搬運(yùn)自主機(jī)的視頻文件才能做到足夠“無損”。如果搬運(yùn)來的視頻與游戲?qū)崣C(jī)畫面有出入,那么測試結(jié)果準(zhǔn)確也無從談起。
這塊采集卡就要6000多RMB了
拿到這些無損視頻文件以后,我們以游戲《命運(yùn)》為例,把它導(dǎo)入到DF自家的分析軟件FPS GUI中。
在這張圖的左邊中,從上到下我們可以依次清楚地看到當(dāng)前幀率,幀生成時(shí)間表,和幀率變化表。
而在右邊的這些設(shè)置看似復(fù)雜,實(shí)際上與幀率測試沒有什么太大關(guān)系。這些設(shè)置一般決定了圖表的顯示位置,顯示范圍,以及內(nèi)部的顏色,字體等等。
FPS GUI軟件概覽
由于是初次導(dǎo)入,我們可以看到目前這些圖表的設(shè)置并不合理(顯示當(dāng)前幀率的地方遮住了游戲的HUD),在經(jīng)過一些快速修正后,我們來看看成果。
修正后的畫面
然后我們再來看看喜聞樂見的跨平臺(tái)對比,我們分別導(dǎo)入兩個(gè)平臺(tái)的重復(fù)片段視頻,并設(shè)置成分屏顯示,在圖中我們可以清楚地看到左邊為PS4的幀率情況,右邊為XBOX的幀率情況,而圖表中不同顏色的線則代表不同平臺(tái)。
跨平臺(tái)對比
數(shù)據(jù)分析
我們已經(jīng)大致了解了這款軟件的工作方法,那就讓我們再次深入,一探幀率測評的究竟。這次我們從Composite(合成)選項(xiàng)卡轉(zhuǎn)到Video(視頻)選項(xiàng)卡。現(xiàn)在,我們可以從右邊的information(信息)欄中一目了然地看到關(guān)于幀的詳細(xì)信息,下面我就對此欄做一個(gè)簡單的漢化。
右邊有各項(xiàng)詳細(xì)信息
視頻信息 幀信息
總幀數(shù):3224 幀數(shù):第2840幀
總撕裂幀數(shù):3(0.09%) 是否屬于重復(fù)幀:否
總重復(fù)幀數(shù):1613(50.03%) 是否屬于撕裂幀:否
平均幀率:29.98 撕裂幀位置:無
最低幀率:29FPS 當(dāng)前幀率:30FPS
最高幀率:31.03FPS 渲染幀時(shí)間:33.33ms
最高正常幀數(shù):1到2621幀共2620幀
最高撕裂幀數(shù):2621幀到2623幀共2幀
有了上表,我們就大致上了解游戲的運(yùn)行狀況,比如畫面撕裂是否常見,幀數(shù)是否穩(wěn)定,以及當(dāng)前幀生成時(shí)間(渲染幀時(shí)間)。那么這些信息是否一定準(zhǔn)確呢?有了這些信息是否就夠了呢?讓我們帶著這些疑問,進(jìn)入下一個(gè)環(huán)節(jié)。
畫面對比
要說游戲幀率評測的基本原則是什么,其實(shí)很簡單,就是找到兩幀之間的不同。計(jì)算機(jī)直接導(dǎo)出的結(jié)果可能有誤,但逐幀對比一定沒問題,不過有時(shí)候它們之間的差別又很難用肉眼直接對比出來。這時(shí)候,這款軟件的熱點(diǎn)圖功能(heat map)就派上了用場。
用于逐幀對比的熱點(diǎn)圖
如圖所示,這就是該幀的熱點(diǎn)圖。熱點(diǎn)功能把對比定位在了像素級層面上:如果圖中的顏色越亮,代表著與前一幀的區(qū)別越大,黑色則代表沒有任何區(qū)別。
而當(dāng)我們把畫面移到下一幀時(shí),我們發(fā)現(xiàn)整個(gè)圖像是暗的,這代表著這一幀與上一幀的畫面沒有任何區(qū)別。重復(fù)試驗(yàn),我們發(fā)現(xiàn)幾乎整個(gè)游戲流程都是這樣的排布。
全黑代表沒有區(qū)別
其實(shí)在60幀格式下錄制的視頻中,像命運(yùn)這樣鎖30幀的游戲就應(yīng)該有著一幀是重復(fù)幀,一幀是全新幀這樣的排布。而上述現(xiàn)象則剛好驗(yàn)證了命運(yùn)幀率為30幀的事實(shí)。
我們再看另一組對比,這次我們依次導(dǎo)入PS版與XO版的《蝙蝠俠阿卡姆騎士》,與《命運(yùn)》不同,《阿卡姆騎士》對主機(jī)的機(jī)能要求更高,所以我們在兩個(gè)平臺(tái)上都找到了掉幀與畫面撕裂。
因?yàn)榈魩苋菀自趲首兓碇姓业剑嬅嫠毫褎t不然。所以找到畫面撕裂的時(shí)空位置又是游戲幀率評測的一大重點(diǎn)。現(xiàn)在先讓我們切換到一幀有撕裂的地方。如圖所示,在PS4畫面的上部我們可以看到一個(gè)非常明顯的撕裂。這處撕裂實(shí)際上是由程序的算法計(jì)算而來,并由短橫紅線標(biāo)在畫面上,而圖片的下方紅豎線則表示撕裂的持續(xù)時(shí)間與撕裂的大致位置。
左邊的畫面撕裂非常明顯
前面這組圖片展示的可能不太清楚,那么讓我們換張對比圖再做仔細(xì)講解
這里畫面撕裂非常頻繁
如圖所示,首先我們要明白藍(lán)色代表XOS,綠色代表XO,在下方的幀率表當(dāng)中,以橫中線為界(上為XOS的情況,下為XO的情況),表中豎中線代表當(dāng)前幀。紅色所占該線區(qū)域則為撕裂位置(所以我們看到XO的畫面上并沒有撕裂),而紅色區(qū)域則代表撕裂時(shí)間(兩個(gè)平臺(tái)不分伯仲)。
盡管這種紅線算法省時(shí)省力,不過算法總歸算法,也會(huì)有出錯(cuò)的時(shí)候。當(dāng)我們覺得這幀撕裂的狀況不確定時(shí),我們可以再次利用熱點(diǎn)圖進(jìn)行像素級別上的對比。
用熱點(diǎn)圖找撕裂位置
就像我之前所說,如果圖中的顏色越亮,則代表著與前一幀的區(qū)別越大,純黑色則代表與前一幀沒有任何區(qū)別。從圖上我們可以看出上一幀的部分畫面在這一幀的上部出現(xiàn)了滯留(黑色部分)。因此我們看到了畫面撕裂。如果我們想讓這些區(qū)別顯得更加明顯一些,我們可以切換為黑白模式,在這種模式下,只有相同(黑)與不同(白)兩種表示方式,因此我們可以更加直觀地找出區(qū)別。注:上圖與下圖不為同一幀。
用黑白模式找撕裂更明顯
既然說到手動(dòng)檢查,那么我們不得不再提一下左下角的幀生成時(shí)間表。這里的幀產(chǎn)生時(shí)間表不僅可視化了游戲過程的流暢程度,而且我們還可以通過這個(gè)圖表來判斷幀率的測量是否準(zhǔn)確。通過開頭的計(jì)算我們已經(jīng)知道30fps對應(yīng)的幀生成時(shí)間為33ms,如果在視頻的某個(gè)區(qū)間內(nèi)出現(xiàn)了大量的掉幀情況,而幀生成時(shí)間還是維持在33ms左右,那么測量數(shù)據(jù)里一定有一個(gè)不準(zhǔn)確,所以這里的幀生成時(shí)間就給整個(gè)測試上了一層保險(xiǎn)。
十分有用的幀生成時(shí)間表
寫在最后
最后其實(shí)我想說,對于玩家而言,測試主機(jī)幀率的實(shí)際意義與可行性并不大(光采集卡可能就已經(jīng)比主機(jī)貴了),但是從側(cè)面來說,這也給了我們一個(gè)了解主機(jī)游戲測評的機(jī)會(huì),滿足了我們的好奇心。
其實(shí)對大眾來說,做這種測試的最大意義還在于其輸出結(jié)果。通過幀率測試的數(shù)據(jù),我們可以很直觀地看出一款游戲的優(yōu)化是否良心,或者該在哪個(gè)平臺(tái)上購買該游戲,這給玩家和廠商都是一個(gè)巨大的參考。
作者:yunbaotang本文地址:http://www.ntlljf.com/bao/94110.html發(fā)布于 2024-01-24
文章轉(zhuǎn)載或復(fù)制請以超鏈接形式并注明出處孕寶堂

