search
尋找貓咪~QQ 地點 桃園市桃園區 Taoyuan , Taoyuan

寫輪眼真的存在嗎?遊戲畫面幀率測量揭秘

數據總能讓你直觀地去判斷一個遊戲的好壞。銷量,售價,評分,這些數字總能引起我們的購買慾望。但是還有一組特殊數據,要是它達不到要求,估計你會連玩遊戲的慾望也沒有了。我們都知道《最後生還者》是一款把PS3機能發揮到極致的遊戲,其精美的畫面總是讓我們流連忘返,但你一定不希望它卡成精美的PPT吧?所以在談論眾多遊戲數據時,我們永遠繞不開一個老生常談的話題——那就是遊戲的幀率。

你不會想玩只有10幀的《最後生還者》吧?

首先我必須澄清一點,就是在我們口頭討論遊戲流暢度的時候,總是把「幀數」(Frame)和「幀率」(Frame rate)混為一談。其實在評測遊戲流暢度的時候,幀率才是那個重要的指標,而不是幀數。關於這一點我會在下文中展開講。

那麼為什麼幀率那麼重要呢?所有的老玩家應該都知道幀率是遊戲體驗的基石,它的高低與穩定與否直接決定了遊戲的流暢性與可玩度。是的,幀率幾乎是遊戲流暢的全部。那我們就自然而然地引出下一個問題:幀率是不是越高越好呢?其實不然,具體原因《遊戲幀數:並非越高越好,穩定更重要》這篇文章已經說的很清楚了。但這裡我想補充的是:除了幀率,幀生成時間與單幀畫面(不撕裂)對遊戲體驗來說也很重要。

說到這裡,有些玩家可能已經有點暈了。所以在正片開始之前呢,我提議以小時候經常玩的翻頁動畫為切入點,讓我們先對幾個關於幀的重要概念做一個大致的回顧。

小時候常玩的翻頁動畫

幀(Frame):一幅字畫叫一幀,這是字典上對幀的解釋。其實在遊戲中大致也是如此,幀就是影像動畫中最小單位的單幅影像畫面。簡單地來說,一幀就是一副靜止的畫面,連續的幀就形成了流暢的動畫。拿翻頁動畫舉例的話,其中的一頁就代表著一幀。其實遊戲也是這麼動起來的,只不過在這裡「翻」的這個過程是由計算機來完成的。

幀數(Frames)/幀率(Frame Rate):普通玩家平時很容易混淆這兩個概念。幀數指一般指單位時間內幀的生成數量,而幀率指的則是單位時間內顯示的幀數(一般以FPS為單位)。先舉個簡單的例子:就像翻頁動畫,幀數代表著你翻到的那一頁的頁數,而幀率則代表你翻頁的速度。

再舉一個不算複雜的例子:如果一個動畫在一秒鐘內的幀數為60幀,兩秒鐘內的幀數為120幀,那麼它的幀率則為60FPS。如果平均幀率越高,那麼畫面越流暢。值得一提的是:在主機上,30FPS一般是遊戲流暢運行的最低標準,而60FPS則被認為是比較完美的。

幀生成時間(Frame Time):顧名思義,幀生成時間指的就是渲染單獨一幀所需的時間。也就是在翻頁動畫中翻一頁所需的時間,所以生成幀的時間一般非常短,通常以毫秒為單位。那這和遊戲流暢度又有什麼關係呢?讓我們先來做一點小小的計算:如某秒的幀數為30幀,那麼已知每秒30幀是流暢遊戲的最低標準,1s又等於1000ms,所以平均每幀的生成時間為1000/30=33ms。也就是說只要每幀的生成時間小於33ms,那麼我們是難以察覺到遊戲中的卡頓的。如果幀生成時間忽上忽下,就算平均下來的FPS為30以上,整個遊戲流程下來也不會太流暢。如果你不是很理解這個概念,下面這個幀生成時間圖能更好地幫助你更好地來理解這個概念(綠色代表流暢,紅色代表不流暢)。

33ms以下遊戲就基本流暢了

說完了這麼多,我想我們已經對幀率分析的基本概念有了一個了解。在PC平台上,我們可以輕鬆地藉助第三方軟體(Fraps),或遊戲自帶的跑分程序來對遊戲里的幀率表現有一個了解;而在主機平台上,我們沒有現成的工具去衡量,靠肉眼去判斷又不準確客觀,但遊戲里的掉幀我們又是有目共睹的。那應該怎麼辦呢。外媒Digital Foundry告訴我們主機的幀率分析一般分三步走:採集——分析——對比。下面就讓我們一步一步地進行解析吧:

準備工作

就像我之前講的,PC上有很多現成的工具(如Fraps)來測試遊戲的幀率,但由於主機系統相對封閉,我們並不能在遊戲主機上直接測試遊戲的幀率表現。在這裡,我們選擇「曲線救國」的方式:即先把主機的畫面搬到PC上,然後再對畫面里的幀率進行分析。在整個過程中,「搬」這個至關重要的步驟就由採集卡負責。我們都知道,一塊採集卡能把來自主機的信號轉換為電腦視頻文件,而這些可打開的視頻便為遊戲日後的分析埋下了基礎。不過在這裡,我想強調的是:這塊採集卡必須足夠貴,足夠高端(1080P 60FPS起步),也只有這樣,搬運自主機的視頻文件才能做到足夠「無損」。如果搬運來的視頻與遊戲實機畫面有出入,那麼測試結果準確也無從談起。

這塊採集卡就要6000多RMB了

拿到這些無損視頻文件以後,我們以遊戲《命運》為例,把它導入到DF自家的分析軟體FPS GUI中。

在這張圖的左邊中,從上到下我們可以依次清楚地看到當前幀率,幀生成時間表,和幀率變化表。

而在右邊的這些設置看似複雜,實際上與幀率測試沒有什麼太大關係。這些設置一般決定了圖表的顯示位置,顯示範圍,以及內部的顏色,字體等等。

FPS GUI軟體概覽

由於是初次導入,我們可以看到目前這些圖表的設置並不合理(顯示當前幀率的地方遮住了遊戲的HUD),在經過一些快速修正後,我們來看看成果。

修正後的畫面

然後我們再來看看喜聞樂見的跨平台對比,我們分別導入兩個平台的重複片段視頻,並設置成分屏顯示,在圖中我們可以清楚地看到左邊為PS4的幀率情況,右邊為XBOX的幀率情況,而圖表中不同顏色的線則代表不同平台。

跨平台對比

數據分析

我們已經大致了解了這款軟體的工作方法,那就讓我們再次深入,一探幀率測評的究竟。這次我們從Composite(合成)選項卡轉到Video選項卡。現在,我們可以從右邊的information(信息)欄中一目了然地看到關於幀的詳細信息,下面我就對此欄做一個簡單的漢化。

右邊有各項詳細信息

視頻信息 幀信息

總幀數:3224 幀數:第2840幀

總撕裂幀數:3(0.09%) 是否屬於重複幀:否

總重複幀數:1613(50.03%) 是否屬於撕裂幀:否

平均幀率:29.98 撕裂幀位置:無

最低幀率:29FPS 當前幀率:30FPS

最高幀率:31.03FPS 渲染幀時間:33.33ms

最高正常幀數:1到2621幀共2620幀

最高撕裂幀數:2621幀到2623幀共2幀

有了上表,我們就大致上了解遊戲的運行狀況,比如畫面撕裂是否常見,幀數是否穩定,以及當前幀生成時間(渲染幀時間)。那麼這些信息是否一定準確呢?有了這些信息是否就夠了呢?讓我們帶著這些疑問,進入下一個環節。

畫面對比

要說遊戲幀率評測的基本原則是什麼,其實很簡單,就是找到兩幀之間的不同。計算機直接導出的結果可能有誤,但逐幀對比一定沒問題,不過有時候它們之間的差別又很難用肉眼直接對比出來。這時候,這款軟體的熱點圖功能(heat map)就派上了用場。

用於逐幀對比的熱點圖

如圖所示,這就是該幀的熱點圖。熱點功能把對比定位在了像素級層面上:如果圖中的顏色越亮,代表著與前一幀的區別越大,黑色則代表沒有任何區別。

而當我們把畫面移到下一幀時,我們發現整個圖像是暗的,這代表著這一幀與上一幀的畫面沒有任何區別。重複試驗,我們發現幾乎整個遊戲流程都是這樣的排布。

全黑代表沒有區別

其實在60幀格式下錄製的視頻中,像命運這樣鎖30幀的遊戲就應該有著一幀是重複幀,一幀是全新幀這樣的排布。而上述現象則剛好驗證了命運幀率為30幀的事實。

我們再看另一組對比,這次我們依次導入PS版與XO版的《蝙蝠俠阿卡姆騎士》,與《命運》不同,《阿卡姆騎士》對主機的機能要求更高,所以我們在兩個平台上都找到了掉幀與畫面撕裂。

因為掉幀很容易在幀率變化表中找到,而畫面撕裂則不然。所以找到畫面撕裂的時空位置又是遊戲幀率評測的一大重點。現在先讓我們切換到一幀有撕裂的地方。如圖所示,在PS4畫面的上部我們可以看到一個非常明顯的撕裂。這處撕裂實際上是由程序的演算法計算而來,並由短橫紅線標在畫面上,而圖片的下方紅豎線則表示撕裂的持續時間與撕裂的大致位置。

左邊的畫面撕裂非常明顯

前面這組圖片展示的可能不太清楚,那麼讓我們換張對比圖再做仔細講解

這裡畫面撕裂非常頻繁

如圖所示,首先我們要明白藍色代表XOS,綠色代表XO,在下方的幀率表當中,以橫中線為界(上為XOS的情況,下為XO的情況),表中豎中線代表當前幀。紅色所佔該線區域則為撕裂位置(所以我們看到XO的畫面上並沒有撕裂),而紅色區域則代表撕裂時間(兩個平台不分伯仲)。

儘管這種紅線演算法省時省力,不過演算法總歸演算法,也會有出錯的時候。當我們覺得這幀撕裂的狀況不確定時,我們可以再次利用熱點圖進行像素級別上的對比。

用熱點圖找撕裂位置

就像我之前所說,如果圖中的顏色越亮,則代表著與前一幀的區別越大,純黑色則代表與前一幀沒有任何區別。從圖上我們可以看出上一幀的部分畫面在這一幀的上部出現了滯留(黑色部分)。因此我們看到了畫面撕裂。如果我們想讓這些區別顯得更加明顯一些,我們可以切換為黑白模式,在這種模式下,只有相同(黑)與不同(白)兩種表示方式,因此我們可以更加直觀地找出區別。註:上圖與下圖不為同一幀。

用黑白模式找撕裂更明顯

既然說到手動檢查,那麼我們不得不再提一下左下角的幀生成時間表。這裡的幀產生時間表不僅可視化了遊戲過程的流暢程度,而且我們還可以通過這個圖表來判斷幀率的測量是否準確。通過開頭的計算我們已經知道30fps對應的幀生成時間為33ms,如果在視頻的某個區間內出現了大量的掉幀情況,而幀生成時間還是維持在33ms左右,那麼測量數據里一定有一個不準確,所以這裡的幀生成時間就給整個測試上了一層保險。

十分有用的幀生成時間表

寫在最後

最後其實我想說,對於玩家而言,測試主機幀率的實際意義與可行性並不大(光採集卡可能就已經比主機貴了),但是從側面來說,這也給了我們一個了解主機遊戲測評的機會,滿足了我們的好奇心。

其實對大眾來說,做這種測試的最大意義還在於其輸出結果。通過幀率測試的數據,我們可以很直觀地看出一款遊戲的優化是否良心,或者該在哪個平台上購買該遊戲,這給玩家和廠商都是一個巨大的參考。下面就讓我們欣賞《仁王:PS4 vs PS4 Pro技術測評》(幀率測試從第五分鐘開始)



熱門推薦

本文由 yidianzixun 提供 原文連結

寵物協尋 相信 終究能找到回家的路
寫了7763篇文章,獲得2次喜歡
留言回覆
回覆
精彩推薦