熱點推薦:
您现在的位置: 電腦知識網 >> 硬件專區 >> 正文

真實再現 Unamed Direct3D Benchmarking Tools

2013-09-12 17:19:42  來源: 硬件專區 

  1.關於顯卡測試中存在的問題

  現在各種顯卡測試文章俨然已成為廣大用戶選購顯卡的重要參考。但隨著驅動作弊的爭論,某些顯卡測試中的成績受到了置疑。一方面知名的測試游戲和程序畢竟有限,很容易被顯卡廠商針對它們在驅動裡做針對性的優化。另一方面這些測試游戲和程序在進行測試時,所有的運動軌跡都是固定的,這樣也容易出現消減運動軌跡之外的場景渲染來提高測試成績的現象。就是在這種情況下,Fraps出現了。它可以在游戲中顯示即時速度,並能給出游戲的最終平均速率。於是“Fraps結合大量游戲”這種更貼近最終用戶的測試組合就開始頻繁出現在各個測試中。但Fraps有一個重要缺陷:由於普通游戲都是沒有測試命令的,我們要用Fraps衡量不同顯卡在同一游戲中的速度時,就只能依靠測試者本身手動控制游戲,盡量保證測試中運動軌跡的一致性。而這就不可避免地會出現一定的人為誤差。

  2.能精確回放3D游戲運行的軟件

  現在,一款可以精確回放3D游戲運行過程的測試軟件出現了。它可以忠實記錄測試者在游戲中的所有動作,所經路徑,並正確回放。由於它是新鮮出爐,所以到目前它並沒有正式的名稱,作者稱它為“Unamed Direct3D Benchmarking Tools”(以下簡稱UDB)。Tw.WInGWit.COmUDB要求的運行環境是WinXP,可以支持DX8、DX9的Direct3D游戲進行測試。這已經完全可以滿足主流顯卡的測試要求了。它的下載地址是http://www.users.on.net/triforce/d3dbench.zip。

  那麼UDB是如何實現游戲運行過程的精確回放呢?簡單地說,UDB會自動捕捉所測試游戲的Direct3D輸出,包括所有的頂點緩沖、索引緩沖、渲染動作和函數調用,並將它們按順序回寫到硬盤當中。在測試時它又可以自動調用這些以文件形式存放的數據,通過DX8或DX9再次進行渲染還原。正是這種使用原有的數據通過Direct3D進行原汁原味的還原的過程,保證了UDB作為測試軟件的可靠性。

  3.如何使用

  現在就讓我們使用近期的DX9大作──Far Cry來體驗一下這款測試軟件的威力。UDB包括LCSplayer.exe、D3DIntercepts.dll等共7個文件。首先我們要把它的3個庫文件(後綴名為dll的文件)放在FarCry.exe的同一目錄下 (為了方便,我是將這個測試軟件的所有的文件都放在了FarCry.exe的同一目錄下)。然後開始進行游戲,UDB會自動開始記錄測試者的游戲過程,並隨游戲的結束自動停止。

  在游戲的過程中它會以非常快的速度在目錄中自動生成bufstream.lcs、comstream.lcs、texstream.lcs三個數據文件,它們裡面就存放了游戲調用的原始數據,所以體積特別龐大,幾分鐘的游戲過程,起碼要存放數百兆字節的原始數據。

  ①設置緩存

  正式測試時我們要先執行LCSplayer.exe,出現如下測試調用界面(圖1)。

  我們首先選擇回放測試需要使用的數據文件。因為前面我們已經說過,這些自動捕捉的數據文件特別龐大,測試時又需要把這些數據調入內存或虛擬內存中,所以為了降低對內存的需求,默認是僅僅使用“ComStream”,但這樣會產生2%~5%的誤差,所以在正式測試時我們需要將“BufStream”和“TexSteam”也勾選上。接著我們選擇回放模式,“Demo”模式會以測試者正常游戲的速度進行回放,而“Benchmark”模式就是以盡可能快的速度回放游戲,並產生記錄文件。這正是我們測試需要的模式。點擊“Play”測試就正式開始了。

  ②解讀測試結果

  測試結束後,UDB會在目錄中生成一個“Benchmark.csv”的數據文件,可以使用Excel打開,裡面記述了每幀速度、平均速度等一系列測試結果。我們還可以將這些結果用Excel制作成更直觀的曲線圖表。

  雖然軟件的使用方法比較簡單,但最終結果的解讀還是有一定技巧的。我們前文說過,UDB在測試時,是以盡可能快的速度進行游戲回放,就像我們看到的電影快進一樣,這個速度在該軟件中叫做Benchmark速度,在圖2中以紅色表示。而一般測試則是記錄的游戲正常進行速度,這個速度在軟件中叫做Recorded速度,在圖2中以藍色表示。

  很明顯,雖然它們的速度變化趨勢相同,但Benchmark速度是要快於Recorded速度的。所以我們使用UDB測出的速度一般是要高於Fraps之類軟件測出的速度。而且要注意,我們也不能拿Recorded速度和Fraps測出的速度進行對比,UDB自動記錄的特性決定了它會記錄一部分幀速度很高的游戲主界面,所以Recorded的平均速度仍然要高於Fraps測出的平均速度。在顯卡對比測試中我們直接采用Benchmark.csv中的Benchmark平均幀速度作為成績記錄即可。當然我們也可以通過觀察實時幀數的突變來找出真正開始游戲的時刻,然後用真正游戲的總幀數除以游戲時間來求出最終速度。這些必要的數據在Benchmark.csv文件中都可以查到。

  3.注意事項

  此外我們仍要注意一些使用問題。首先,制作游戲錄像時,不要在游戲中進行任何設置調整,要迅速直接進入游戲。這是因為UDB會記錄所有的游戲過程,包括設置調整。所以在設置調整中花費了時間的話會影響測試成績的准確性。同樣,游戲的片頭動畫也要迅速跳過。其次,不要記錄太長時間的游戲內容,時間長了占據的硬盤空間太大,對測試時內存容量的要求也會更高。第三,每次測試都會自動覆蓋Benchmark.csv這個結果文件,要注意及時改名保存。最後,使用UDB要在盡可能“干淨”的系統中,因為筆者測試發現,安裝軟件太多的系統往往會在使用UDB時出現這樣或那樣的問題。

  4.不足之處

  現在我們來談談這個軟件的一些問題。比如:它不支持OpenGL游戲;沒有開始和結束快捷鍵,因而無法排除幀速度很高的游戲主界面的輕微影響;在游戲的支持上還有一些問題,有些游戲可能會出輕微的圖像錯誤,兼容性仍需加強,從目前的測試來看不是所有的DX8或DX9都可以使用這個測試軟件。以上三個問題,除了第一個作者已經聲明將在下一個版本中改進,其他兩項如不能改進必將影響UDB的普及使用。最後提醒大家,由於UDB完成游戲錄像後就能不再依靠游戲進行測試,所以我們可以在錄像後就把原有游戲刪除,反正只要保證bufstream.lcs、comstream.lcs和texstream.lcs這三個記錄文件存在就可以進行測試。

 
From:http://tw.wingwit.com/Article/Hardware/201309/2837.html
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.