2013.06.20 08:09

影像順暢度深度解析:破解 FPS 盲點、找出影像頓呆的主因

ADVERTISEMENT

錯誤畫格造成撕裂

NVIDIA在官方提供的測試指南中提到,當遺失畫格產生時,畫面會由後續的畫格遞補,表現在色條資訊上,就是其中幾個顏色會被略過,以附圖為例,畫面缺少由橄欖色代表的畫格。筆者在測試期間也曾遇到遺失畫格的狀況,但是狀況時間皆持續超過1張畫格的顯示時間,從色條資訊來看,就是在幾張畫格皆為同一顏色後,直接跳至其他顏色,由於無法於靜態圖片中展示此一情況,因此引用測試指南中圖片做為說明。

侏儒畫格則是在多GPU環境下,某畫格顯示於螢幕的時間過短,其產生的原因與遺失畫格不同,但是造成的影響卻相同,會讓畫面產生撕裂狀況。或許讀者會有問題,為什麼這些狀況都會造成撕裂?

會產生撕裂的主因,是在螢幕在同一次更新中,顯示了多張由顯示卡繪製的畫面,由於這些畫面會有些許的時間差(FPS為60幀時為16.7ms),所以畫面中移動的物件會因前後畫格的時間差,落在不同位置,前後畫格交接處就會產生撕裂。然而遺失畫格是在在第一畫格顯示後,直接跳到第三畫格,侏儒畫格雖然會顯示第二畫格,不過其上下端交接處都會產生撕裂,所以影響畫質的狀況更為明顯。

ADVERTISEMENT

▲侏儒畫格只會發生於多GPU環境,畫面中的綠色色條異常短,且在與前後畫格交接處造成畫面撕裂。

分析真實影像數據

以下面的測試圖表為例,在測試的過程中FPS表現相當不穩定,大部分的frame time(畫格描繪需時)分佈於14至20ms之間,介於16ms上下,但是當效能瓶頸產生時,frame time高鋒值高達665ms,其停頓時間超過半秒以上,對於視覺感受影響相當嚴重。瞬間最小FPS的波動幅度也很大,介於15~40幀之間,流暢度有待加強,這些精確的FPS是FRAPS不容易測到的。

ADVERTISEMENT

最後1張圖表可以看到遺失畫格與侏儒畫格的分部狀況,這張圖表也正是FCAT最大的價值所在。由於FRAPS無法判定遺失與侏儒畫格,所以測得之FPS會有以少報多的狀況,FCAT則可判斷非正常畫格。圖中紅色與黃色部分的上、下緣分別表示FRAPS與FCAT測得的成績,可以看見兩者間差距對於效能判定的影響有多大。

▲此圖為各畫格輸出時間的分佈圖,縱軸是繪圖時間,越高代表繪製該畫格需要較多時間(效能較低)。

ADVERTISEMENT

▲最低FPS的分佈代表顯示卡運作的穩定性,曲線越接近水平代表效能分佈較為平均,畫面的流暢度趨於一致。

ADVERTISEMENT

▲這是FCAT測得的FPS效能,黑色曲線代表FRAPS測得的FPS,藍色曲線則為FCAT測得的FPS,差異很大。

結果導向,找出問題

NVIDIA官方表示,開發FCAT之目的在於找到問題,而不是分析問題的成因,於是造成了FCAT的用途真的僅止於將問題測出,無從知道是哪些因素造成這些不正常畫格的產生,需要靠工程師人肉分析,過程相當耗費時間。

即便如此,FCAT仍然提供了有效的方法,可以找出傳統測試方式無法找出的問題,只不過其硬體設備需求太高,讓FCAT除了投入研發工作外,恐怕只能淪為廠商互相攻訐的武器。

FCAT可用於除錯

由於目前絕大多數的遊戲,都是靠遊戲引擎製作,而非從零開始開發,所以當發現繪圖bug時,責任歸屬就落在遊戲引擎廠商、遊戲廠商、顯示卡廠商等3者之間。

NVIDIA官方表示他們會定期針對新推出的遊戲,進行除錯與效能最佳化,工作內容當然也會透過FCAT檢測有無錯誤畫格發生的狀況,雖然FCAT無法直接找出問題成因,但是至少可以鎖定問題發生的時間點,提供比較精確的方向讓工程師做進一部的分析,讓大海撈針的工作有些頭緒可尋。

 

本文同步刊載於電腦王雜誌
 
 
歡迎加入電腦王雜誌粉絲團

ADVERTISEMENT