2012 年 11 月 13 日,Silicon Studio 免費公開了 Android 及 iOS 平台專用的 3D Bench Mark(3D 效能測試軟體)《MOBILE GPUMARK 》。這套軟體可以分別從 Google Play 與 App Store 下載。
聽到 Android 與 iOS 專屬這樣的描述,自然會直接聯想 MOBILE GPUMARK 是一套支援智慧手機及平板電腦的 Bench Mark 軟體。而且「GPU」這個字,讓人一眼就看出這不是一般的測試軟體,而是一款以測試繪圖性能為主的 App。
正如 PC 高端玩家所知,Futuremark 所開發的 3Dmark 系列是業界裡的標準,擁有舉足輕重的地位。該公司曾公開發表過最新開發的「3DMark」也支援了 Android 與 iOS 平台。此外,在智慧手機與平版電腦的領域裡,「GLBenchmark」(由匈牙利 Kishonti Informatics 公司開發)目前是業界的標準,但是這次日本的開發工作室異軍突起,投入了這個”戰場”,十分值得關注。
筆著此次有幸能專訪開發負責人,並藉由這次的訪談過程,揭開《MOBILE GPUMARK》的層層面紗。
MOBILE GPUMARK 的誕生始末
Silicon Studio 簡單而言就是一家綜合中介軟體開發公司。日本自產的 all in one 遊戲引擎「OROCHI」、PostEffect 效果著稱的中介軟體「YEBIS」、支援高動態光照渲染的繪圖中介軟體「DAIKOKU」。粒子效果中介軟體「BISHAMON」等軟體皆是出自於 Silicon Studio 之手。在遊戲業界裡無人不知無人不曉。
若要將採用過這些中介軟體的遊戲作品一一列舉,那恐怕三天三夜也說不完,不過我們可以從近期的知名遊戲中列舉出幾個採用過 Silicon Studio 中介軟體的知名遊戲作品,例如以 OROCHI 製作的《
雙槍激鬥 (ガンスリンガー・ストラトス)》,以 YEBIS 製作的《
真・三國無雙 6 》系列,以 BISHAMON 製作的《
伊甸之子 (Child of Eden)》(PS3 / Xbox 360)等。其中也有 Silicon Studio 自行以遊戲開發工作室的角色所製作的遊戲《
3D 點陣英雄榜 (3D ドットゲームヒーローズ)》(發行商 FROM SOFTWARE)。
總體而論,Silicon Studio 擁有「卓越技術力的工作室」的高評價。Silicon Studio 此番為智慧手機與平板電腦平台提供 BENCH MARK 應用程式的舉動,可說是令人感到耳目一新。
後藤 靖氏
(Silicon Studio R&D 統括本部 SOFT Engineering Software Softare Engineer)
MOBILE GPUMARK 的開發領隊、Silicon Studio 後藤 靖 先生藉著「YEBIS 2」支援智慧手機與平板電腦平台的機會,於 2011 年秋季季末以小規模的公司內部企劃案啟動了《MOBILE GPUMARK》,做為技術研發的一環。
這個內部企劃案最初採用的「NATURAL BONE」是一個描述佇立在在森林中遭到謎樣球體攻擊的帥氣原始人 DEMO。據表示,這是一項將原本支援 DirectX9 世代 GPU 的程式移植到 Android 及 iOS 的工程。這一次成功的移植經驗,讓 Silicon Studio 更加得心應手,不光只是提供「YEBIS 2 的 Android & iOS 版技術 DEMO」,今後還要航向到提供給更多人使用的 BENCH MARK 應用程式的方向。
決定好方向後,公司內部也出現「只有 NATURAL BONE 的圖像測試太單調了」這樣的建議。採納這個建議後,在 2012 年 3 月,便開始著手全新規格測試序列「DEAD PARKING」的開發,它是描繪一個少年遭受眾多喪屍攻擊的場景。在此之後,以更為正式的產品企劃案於 4 月加入了 GPU 的 ORIGIN 測試「GPU BENCHMARK」,緊接者在 5 月推出了閃閃動人的寶石「RIGID GEMS」,在當時這套軟體已近乎最終的型態。
附帶一提,RIGID GEM 原本就是一套 GPU 測試 DEMO 免費軟體。據聞是因為 RIGID GEMS 的開發人員加入了 Silicon Studio 的關係,因而追加了這段內容。
RIGID GEMS
DEAD PARKING
NATURAL BONE
GPU BENCHMARK
然後在 7 月導入了能夠在網路上排名的 BENCHMARK 跑分系統。這套系統的其中一部份也有採用 Silicon Studio 的社群遊戲引擎「BENTEN」技術。從頭到尾這個頗具規模的企劃案花費了整整一年的時間。
MOBILE GPUMARK 的取得方法與執行環境
正如前文所提及,MOBILE GPUMARK 的 Android 版本與 iOS 版本可以各自從 Good Play 與 App Store 免費下載,目前並沒有推出付費版本。
執行環境方面,Android 必須是 2.3.3(Gingerbread)之後的版本,而 iOS 必須是 5.1 以後的版本,雖然有規定作業系統的版本,但是 CPU 核心、GPU 核心還有主記憶體容量方面並沒有特別的規定。這是因為 iOS 平台與 Android 平台的硬體規格沒有統一的緣故。況且,驅動程式的更新也不能由使用者自行操作 (基本上),「這完全是處在混沌的狀態 (笑),我們必須手動為每一台機種進行執行測試」後藤先生表示。實際上仍有不少搭載 Android 2.3.3 以上作業系統版本的平台無法正常執行 MOBILE GPUMARK 的情形。
據後藤先生表示,即便是符合 OpenGL ES 2.0 的 API 規格的同一套程式碼,仍存在著某些平台可正常執行而某些平台卻無法正常執行的情形。為了解決這個問題,直接從程式的編寫開始著手,為了改善這個問題幾乎到達了求神看風水的境界。
由於這是一款免費的 App,針對諸如此類的搭配性問題,也只能請大家暫且容忍一下。若手上的裝置有無法執行的情況時,請寫信至 Goodgle Play 裡的「開發人員信箱(デベロッパーにメールを送信( mobilegpumark@gmail.com)」,信件中請註明裝置名稱與作業系統版本,希望大家可以在提升這套軟體的完成度上貢獻一份心力。
MOBILE GPUMARK 的基本情報
MOBILE GPUMARK 的主選單
MOBILE GPUMARK 圖像引擎所採用的渲染技術,基本上就是在文章一開頭所提及的中介軟體「DAIKOKU」的智慧手機版本技術。智慧手機版的 PostEffect 中介軟體 YEBIS 2 則提供了景深表現、眩光及高光等應用在 PostEffect 處理的技術。
DAIKOKU,YEBIS 2 雖然是智慧手機版的軟體,但是功能上幾乎與 PC 版或家用主機版相同,絲毫不遜色。
不過之所以強調「基本上」這三個字,是因為只有 RIGID GEMS 追加至 MOBILE GPUMARK 的始末是較為特殊的情形,渲染還是以 OpenGL ES 做為基礎,並擁有獨自的規格。話雖如此,在 RIGID GEMS 的圖像測試裡,以 YEBIS 2 測試 PostEffect 效果為主,在分數顯示與使用者介面(GUI)這兩個點上則運用了 DAIKOKU,所以並非僅僅只有實裝 RIGID GEMS。
依作業系統的不同,也有一些差異之處。如 Android 版與 iOS 版的平台邊框描繪並不相同。另一方面,主要的程式碼基本上都是一樣的。也就是說,並沒有針對任何一個平台進行最佳化等相關措施。
最大幀數(每秒畫面張數) 為 60fps(60Hz)。最大幀數 60fps 是依照 Android 或 iOS 各自的規格所定義。
反鋸齒功能部份,(Anti-aliasing,簡稱 AA) 不使用 GPU 所提供的 MSAA 功能(多點採樣抗鋸齒運算,Multi Sampling Anti-Aliasing)改採 YEBIS 2 所提供的 FXAA(快速反鋸齒技術,Fast Approximate Anti-Aliasing)。FXAA 乃「針對渲染結果進行垂直與水平明亮度變化的偵測,被判定為邊緣的部份則採漸層填滿的處理,算是 PostEffect 式的反鋸齒表現手法」。(相關報導)。由於 MOBILE GPUMARK 身負「彰顯 YEBIS 2 功能」的使命,它的規格絕非只是偶然。
MOBILE GPUMARK 有四個測試模式「RIGID GEMS 」「DEAD PARKING 」「NATURAL BONE 」「GPU BECNHMARK 」,RIGID GEMS、DEAD PARKING 與 NATURAL BONE 屬於技術 DEMO 系測試,GPU BENCHMARK 是針對 GPU 負載的一種測試。
各種測試都含有「DEMO」模式,在「DEMO」模式,可以開關各種效果及增減物件及角色的數量,另外還附有移動視點的功能。
在技術 DEMO 系測試裡,將連續 DEMO 的渲染解析度設定成測試平台的螢幕解析度。若是採用 720×1280 解析度液晶面板的智慧手機,渲染解析度 (長邊擺成橫向) 則設定為 1280×720。
主選單左下設有「Quality」的選項,可以選擇「High」「Normal」「Low」三種品質,主要是針對景深、眩光與高光三個項目 (YEBIS 2) 的品質進行調整。具體而言,就是 YEBIS 2 準備進行 PostEffect 處理前的一次渲染對象 (=PostEffect 的原始素材) 的解析度設定,各自的設定內容如下:
High:與平台顯示解析度(=渲染解析度)相同之設定。
Normal:以平台顯示解析度×0.75 之解析度設定。以 YEBIS 2 所生成的 PostEffect 須放大成顯示器解析度後進行合成。
Low:以平台顯示解析度×0.5 之解析度設定。以 YEBIS 2 所生成的 PostEffect 須放大成顯示器解析度後進行合成。
詳細內容會在後續補充,由 Silicon Studio 經營管理的官方 BENCHMARK 跑分排名網站僅統計「High」品質測試的跑分,Normal 與 Low 品質純屬供玩家參考之用途。在 Normal 與 Low 的品質設定,填充率負載(≒メ記憶體負載)會降低之緣故,變更品質設定後可與 High 品質在幀率(Frame Rate)提昇幅度上做一個比較。
接下來就依據上面的圖片,為每一種 DEMO 模式進行說明。
RIGID GEMS~藉著獨有的渲染技術與的物理模擬所創造的美麗圖像
RIGID GEMS 是一個有許多戒指在大理石桌上旋轉的同時,從上方不停地落下五顏六色寶石的測試模式。
MOBILE GPUMARK:RIGID GEMS
VIDEO
在大理石桌為主體的立方環境映射背景下,仔細觀察鏡像表現時,可以從一個接一個掉落在桌上的寶石中看到折射的景像。
寶石有數個種類,每一個寶石的多邊形(Polygon)數量大約是 70~214 個左右。在進行 Benchmark 時,一共會出現 30 顆寶石。戒指則會使用 832 個多邊形,進行 Benchmark 時,共有 24 枚戒指會陳列在桌上。由於背景與石桌各運用了 180 個多邊形與 1682 個多邊形的關係,每一個影格的多邊形總數為 2 萬 6000 個。
貼圖的記憶體佔用量為 6.2 MB,當中最大的物件是立方環境背景(512×512 testure×6 面)。這是唯一沒有壓縮貼圖的畫面,桌子的大理石外觀也是以貼圖的方式呈現。
針對寶石與戒指也進行了濃淡處理,並沒有個別採用材質貼圖。立方環境背景僅針對戒指採用環境映射處理。細究寶石的折射內容,我們會發現裡面僅有桌面的外觀(折射畫面)。
折射的部份是採用一種「在寶石表面彎曲視線向量、並將已渲染的貼圖畫面進行樣本化」的手法。在獨創的 DirectX 11「RIGID GEMS 完整版」裡,採用「光線步進(Ray Marching,讓媒質產生散光、並讓光線稍微散亂與衰減的運算手法)」來運算映入寶石的視線對外進行反射或折射的效果,但是 MOBILE GPUMARK 版的 RIGID GEMS 僅在寶石介面進行一次折射的運算。
從高明亮度的部份可以看到印象式的光線漫射效果以及背景從合焦到逐漸模糊的景深表現,全靠 YEBIS 2 的運算。在 DEMO 模式下,共有[GLARE][DOF][LUMINANCE]三種設定的變更按鈕,每次點擊按鈕時會依照以下的順序變更效果。
[GLARE]鈕 :變更「光線漫射」風格
STANDARD(標準)→CHEAPLENS(LOMO 風)→CROSS(十字狀)→SPECTRAL(光譜狀)→HORIZONTAL(水平狀)→VERTICAL(垂直狀)→DISABLE(無效化)→B LOOM (光溢出)→……
[DOF]鈕 :景深表現的 開 / 關 切換
ON(開)→OFF(關)→……
[LUMINANCE]鈕 :眩光效果的強度
FAINT(弱)→MEDIUM(中)→STRONG(強)→……
在 DEMO 模式下還有其他的按鈕,當按下[ADD]鈕,新的寶石就會落下或出現,最多可以增加到 100 顆,另外也能拖曳戒指與寶石。
後藤先生表示,「(RIGID GEMS)頂點著色引擎的負載量並不會太高,反倒是像素著色引擎的負載較高一些」。
此外,當動作過於自然時會較不顯眼,戒指與寶石的碰撞動作並非預先準備好的動畫,而是以 CPU 的真實物理模擬所運算出的結果。
物理模擬的部份,碰撞與運動的計算單位都以微小的粒子計算,並內建在原始 RIGID GEMS 裡。這一部份並不屬於 Silicon Studio 所製作的中介軟體功能。
模擬方式採用了極為基礎的剛體物理模擬,以戒指來說,在圓環的形狀裡嵌入代表演算單位的微小球體,形成一個碰撞模組,而寶石其形狀亦是坎入微小球體所形成的另一個碰撞模組。
微小球體在數量上,戒指運用了 90 個左右,而寶石則運用了 16~47 個。當戒指硬生倒在大理石桌面時,寶石並沒有往桌面施予更深的作用力,而是產生互相碰撞的反應。在 DEMO 模式下,戒指漂亮地倒下並施予作用力在旁邊的戒指上,產生了連鎖骨牌效應,著實有推骨牌的趣味性。
MOBILE GPUMARK:RIGID GEMS DEMO 模式之推骨牌
VIDEO
這部份的剛體物理運算對 CPU 有相當高的負擔,RIGID GEMS 似乎也挺適合用在 CPU 性能的測試上。
DEAD PARKING~僵屍大軍的強襲,戲劇化演出的測試橋段
逃到陰暗地下停車場的少年與前仆後繼的僵屍大軍。少年雖然拿著手槍反擊,最後仍寡不敵眾,被僵屍海所淹沒,在 MOBILE GPUMARK 的所有測試影格中,DEAD PARKING 是最富有戲劇性的。
MOBILE GPUMARK:DEAD PARKING
VIDEO
登場的僵屍共計有 24 具,每一具使用的多邊形約有 4000 個。後藤先生表示,「建模(modeling)時用了 2100 個多邊形,但是在轉檔至實機時,退化多邊形(degenerate polygon)增加了不少,結果多邊形的使用量就增加到 4000 左右」。
此外在少年主角的部份總共使用了約 3300 個多邊形。作為背景的地下停車場的多邊形總數約為 1 萬 3000 個,簡單地計算後,大約使用了 64 萬個多邊形繪製這個場景。
平行光源是唯一的動態光源。這個光源打在所有角色身上。灑滿全局照面(Global Illumination)淡光的背景,是採用預先計算(pre-computation)的方式將光照貼圖(Lightmap Texture)的顏色加深(Color burn)。
天花板的日光燈照明產生了眩光,看起來雖然像是光源,其實這只是 YEBIS 2 的 PoseEffect 所創造的效果。背景的光照貼圖被高明亮度的貼圖圖素(texel)塗滿,不過 YEBIS 2 仍能勾勒出眩光。後藤先生特別強調「就如同畫面所展示般,YEBIS 2 能夠讓畫面變得更加飽和」。
相對於僵屍與少年等動態角色,陰影也是動態生成,而非物件的光影。 這些陰影都是靈活運用 DAIKOKU 的功能所產生的輪廓紋理 (silhouette textures)。而地板是採直接繪製的設計,因此不會自投射陰影 (self-shadow) 也不會投射至其他物件。
貼圖的記憶體總佔用量約為 57.6MB,會依照各 GPU 能運用的貼圖壓縮手法進行壓縮。
具體舉例出貼圖壓縮技法的名稱如下,Imagination Technologies 的「PowerVR」系列圖形核心「PVRTC」,Qualcomm 的「Adreno」系圖形核心「ATITC」,NVIDIA 的 Ultra Low Power GeForce 系圖形核心「DXTC」,其他的圖形核心還有「ETC」(Ericsson Texture Compression)。MOBILE GPUMARK 的圖形資料庫裡收錄了採用各種貼圖壓縮技法所壓縮的全類型貼圖包。
依不同的壓縮技法,壓縮比也有差異。舉例來說,PVRTC 可將約 57.6MB 的貼圖壓縮至 7.2MB 左右,是原來的 8 分之 1 大小,並包含在圖形資料庫裡。
來勢汹汹的僵屍與奔跑開槍少年的動畫,全部都是以關鍵格動畫 (Key frame animation) 驅動動作資料庫 (motion data)。24 具僵屍則是運用時間差,以不同的時間點播放,呈現出 24 具僵屍各自行動的動畫。但實際上,每具僵屍的動作都是相同的。不過,僵屍身上所穿的衣服是利用貼圖製作了好幾個款式,這是為了讓每一個僵屍看起來都是獨一無二而特別打造。
此外,到了遊戲中段,襲向少年的僵屍中,只有三具會轉變成襲擊動作,並設置了特別的動畫。
此測試模式不光只有模擬處理,包含其他所有的動作都是將預先生成的內容以播放的方式表現。層層湧上的僵屍群也不過是透過位置與方位,呈現出蜂湧而至的動畫內容。
不過,DEAD PARKING 的動畫控制處理是經由 CPU 運算,所以當登場的角色數量變多時,CPU 的負載也隨之增高。另外,當然角色數量變多,頂點著色引擎的負載必然會提高許多。
在 DEMO 模式下,可以顯示出更多的僵屍,最多可以增加到一百具,因為將僵屍間互相碰撞的判定簡略化的關係,所以當數量增加時,會出現重疊與糾纏在一起的不自然動作,關於這一點必須請大家見諒。
在 DEMO 模式下,陰影的開關與 YEBIS 2 的 PostEffect 效果開關都是可以切換的。GLARE(炫光)、DOF(景深)與 LUMINANCE(明亮) 等 YEBIS 2 裡的選項設定,也與 RIGID GEMS 相同。
當按下[CAMERA]鈕時,可以變更視點。在景深 (DOF) 開啟的狀態下,點擊畫面裡的任何一處就可以將焦點聚集在該處,體驗一場少年大戰僵屍的戲碼。
NATURAL BONE~帥哥原始人與小型 UFO 的叢林大對決
森林的遺跡前,一個是擺好戰鬥架勢、面無表情的原始人型男。另一個迎面而來的是與該場景不協調的球型飛行物,它是守護遺跡的超現代防衛系統嗎? 手持短劍的青年究竟又會採取什麼樣的行動? 讓我們繼續看下去。
MOBILE GPUMARK:NATURAL BONE
VIDEO
由於 NATURAL BONE 這一套測試中登場的角色組合過於新穎氣氛過於詭譎,不得不令人懷疑「背後是否另有隱情,亦或是有潛藏著不可告人的故事?」
測試裡的主角帥哥原始人用了 1 萬 2000 個多邊形,做背景的森林與遺跡總共用了 15 萬個多邊形。
本稿的開頭中也曾提及 NATURAL BONE 是 WINDOWS 環境下以 DirectX9 做為基礎所執行的原創程式,MOBILE GPUMARK 打從一開始就有移植 NATURAL BONE 的計劃。因此當初進行開發的時候,便顧慮到手機硬體的 GPU 性能,將背景降低到 5 萬個多邊形左右,減少數位幾何處理。後續因為企劃方向變更的關係,將 NATURAL BONE 移植成 Benchmark App 時,便認為「既然要做成 Benchmark 的話,就該給予更大的負載」,因此把背景的多邊形數量又調回到 15 萬個,數量與原創的版本相同。
但這個手機 App 版本也並非與 DirectX 9 的原始版本分毫不差。在 MOBILE GPUMARK 裡,草木隨風搖曳的動畫就被省略了。
貼圖的記憶體佔用量經過 PVRTC 壓縮後約 8.2MB(※壓縮前實際佔用量為壓縮後的 8 倍、65.6MB)。
畫面裡配置的光源為太陽光照,是唯一的平行光源。並只對原始人進行動態打光。背景是利用預先計算(pre-computation)所生成的光照貼圖,並沒有進行打光。
陰影的生成與光源相同,僅針對原始人在運行時間(RUNTIME)下處理。採用的陰影生成手法與 DEAD PARKING 相同,僅僅對地面做投射輪廓貼圖。背景裡的植物旁所落下的陰影也是事前對光照圖進行顏色加深的處理。
原始人的肌肉與毛髮都是採用凹凸貼圖(bump mapping)中的技法「法線貼圖(Normal map)」進行處理,並採用擴散反射與鏡面反射對肌肉進行打光處理。另外,利用事前準備好的貼圖,讓周圍的景象照映在來回飛行的球體表面上。
NATURAL BONE 對 CPU 的負載雖然不算太大,但因為多邊形的數量較多,PostEffect 效果也較飽滿的關係,總體來說,是負載量最高的測試模式。後藤先生解釋「事實上,除了飽滿的 YEBIS 2 PostEffect 效果外,做為背景之一的植物綠葉描繪也是造成像素著色引擎負載過高的其中一個主因。」
若更進一步地探討,會發現「帶有透明部位的葉子形狀貼圖」會比較適合用在代表葉子實體的矩形多邊形上。描繪時葉子時進行α測試,必須將透明部份分離後進行描繪,但是手機平台的 GPU 核心的記憶匯流排頻寬(Memory Bus Bandwidth)較小,所以不太能應付α測試。這一幕大量使用α測試,對於手機平台專用的 GPU 而言,負載自然也會隨之增高。
考慮到上述因素,若還鎮能在 NATURAL BONE 裡取得高跑分,那麼你手上的智慧手機或平板電腦的 3D 繪圖功能必定是相當優秀喔。
還有,DEMO 模式下的操作與設定選項都與 REGID GEMS 及 DEAD PARKING 相同。
GPU BENCHMARK 的秘密~「你的測試已經結束」
在本篇專稿的前段裡,曾提過 GPU BENCHMARK 的技術 DEMO 系測試並非僅僅於此。水滴狀幾何學圖形的閃動、飛龍雙翼的擺動、NATURAL BONE 裡出場的原始人手持短劍的舞動,一共有 10 種簡短的動作測試。
它足以與 Futuremark 公司的 3DMark 系列過去曾採用過的「Feature Test」(要素測試)比擬。有了這個模式才有資格被稱作「BENCHMARK」。
MOBILE GPUMARK:GPU BENCHMARK
VIDEO
特別要提醒的是,相對於上述技術 DEMO 系測試模式在執行環境顯示器解析度下所執行的內容,只有 GPU BENCHMARK 是以固定的渲染解析度 850×450(長寬比 16:9) 執行。這樣的設計與其說檢驗智慧手機或平板電腦的性能,倒不如說其用意就是要檢驗搭載 GPU 單核的性能。因此,只要在使用 GPU BENCHMARK 的情況下,就不會受到主選單的「Quality」選項設定的影響。
當測試前的讀取畫面出現時,其實就已經開始進行測試
測試影格的其中之一。利用飛龍擺動雙翼偵測高多邊形模組的繪圖負載
當執行時會播放一段極短的測試影片,但實際上,真正的偵測動作已經在影片播放前出現「Please Wait」畫面的期間中執行。
在進行 GPU BENCHMARK 測試的情形下,並不是執行「以位元區間 16.67ms 的速率,達成幀數 60FPS」這樣的處理方法,而是將繪圖資料一口氣丟進後台緩衝區(offscreen-buffer,隱藏的幀緩衝區)裡,並執行測試。接在 Please Wait 畫面後的播放影片只是一個替代的內容而已。
後藤先生提到「影片播放時,畫面下方看起來像計分表的數字會不斷地攀昇,其實這也是在『Please Wait』顯示的時候已經計算好的結果,只是特地讓它以精彩的方式呈現。(笑)」影片播放時所顯示的 fps 值只不過是該影片的幀率,但是它與測試一樣都是以「即時渲染(realtime rendering)」的方式執行,但與跑分沒有直接關係。
我個人覺得,為了讓各式各樣的機型都能進行測試,有一個能夠短縮測試時間的「無播放影像式測試」選項就再好不過了。
請依照以下測試項目的順序一一瀏覽。
● GPU BENCHMARK(1)填充測試(Fill Test)
第一個要執行的項目「紋理填充速率測試(Fill Test)」,主要執行的內容為描繪無數個貼著半透明貼圖的多邊形。如同之前所說,帶有半透明繪圖的α測試,對於記憶體匯流排頻寬較小的嵌入式平台 GPU 核心而言,是一個非常沈重的測試項目。
因為是紋理填充速率測試的關係,測試結果會以每秒像素處理量(MPixels/s)表示,但是最後顯示出來的結果值會改成「成績式的數字」(後藤先生表示),並成為 GPU BENCHMARK 分數的其中一部份。剛出爐的紋率填充率數值會出現在影像播放的左下方,但不會顯示出最後的結果,必須自行記錄。
● GPU BENCHMARK(2)高面數模型的繪圖測試
「高面數模型(簡稱高模,High Polygon Model)」的 DEMO 圖像
接下來就是「高面數模型(High Polygon Model)」的測試。在這個測試裡,對 41 萬 1021 個多邊形構成的飛龍進行渲染後,再施以一個動態的平行光源,並以像素單位演算擴散反射與鏡反射的打光。
在沒有壓縮的狀態下,貼圖佔記憶體量總共為 54MB。對物件進行了擴散反射貼圖、擴射反射濃淡貼圖、法線貼圖、環境貼圖等處理,正如所見,背景沒有進行任何處理。
雖然沒有幾何圖形的負載,但是因為演算像素單位的擴散反射與鏡面反射的光照效果,卻是一個使像素著色引擎高負載的測試。
● GPU BENCHMARK(3)滿滿地僵屍滿滿地夢之頂點負載測試
「群體模組(Many Models)」的 DEMO 圖像
以「群體模組(Many Models)」進行頂點負載測試。在 DEAD PARKING 裡出現的每一具僵屍大約使用了 4000 個多邊形,在這個測試音,總共會出現 100 具。
簡單地計算一下,繪圖內容大約有 40 萬個多邊形,但是除了繪圖的部份以外,必須使用 CPU 控制動畫,因此 CPU 的負載比例也相當高。
因為有約 40 萬個多邊形的緣故,多邊形的數量與高面模組測試時的數量幾乎相同,相對於僅有一隻的飛龍,僵屍則高達 100 具,在描繪次數(Draw Calls)上,壓倒性的勝過高面數模型的繪圖測試。
對於群體模組也只使用一個動態的平行光源。打光的部份,只進行了頂點單位的擴散反射處理。(※鏡面反射的光照已省略)。因此,雖然這一項群體模組負載測試的多邊形數量與高面數模型測試一樣約為 40 萬個,但是像素著色引擎的負載卻比較輕一些。
貼圖的部份僅採用貼花著色器(Decal Texture),無壓縮狀態下的記憶體佔用量約 1.3MB。
此外將唯一的共同模組,以不同的參數進行複數渲染的手法,稱之為「幾何座標引用(Geometry Instancing)」,OpenGL 則稱「實例渲染(Instanced Rendering)」,但是 MOBILE GPUMARK 以 OpenGL ES 2.0 做為基礎,並沒有活用此功能。
● GPU BENCHMARK(4)“剝得一乾二淨”帥哥原始人的素顏
「NATURAL BONE 裡登場的帥哥原始人在沒有背景的舞台裡,揮舞短刀」是一段進行「個別頂點照明(Per Vertex Lighting)」「個別頂點照明與反光貼圖(Per Vertex Lighting & Specular)」「個別像素照明與反光貼圖(Per Pixel Lighting & Specular)」「個別像素照明、反光貼圖及法線貼圖(Per Pixel Lighting & Specular & Normalmap)」共四種測試的影片。
個別頂點照明
(Per Vertex Lighting)
個別頂點照明與反光貼圖
(Per Vertex Lighting & Specular)
個別像素照明與反光貼圖
(Per Pixel Lighting & Specular)
個別像素照明、反光貼圖、法線貼圖
(Per Pixel Lighting & Specular & Normalmap)
原始人採用 NATURAL BONE 裡模組,所以多邊形數量維持 1 萬 2000 個不發。無壓縮狀態下,貼圖佔用記憶量約為 31MB。貼圖的種類有貼花著色、法線貼圖、反光貼圖(光澤貼圖)等。
動態光源仍只有一個平行光源。因此,執行鏡面反射與擴散反射的打光時,渲染精度(≒品質)可分四種模式,並測試每一種模式下的性能,但這個測試的主要目的就是一起進行測試。
首先,,Per Vertex Lighting(個別頂點光照)只以頂點單位進行擴散反射打光的計算,像素繪圖以該結果做為基礎,利用線性插值(Linear interpolation)所取得的顏色進行測試。
Per Vertex Lighting & Specular(個別頂點光照與反光貼圖),以頂點單位計算擴散反射與鏡面反射雙方的光照效果,像素繪圖以該結果為基礎,利用線性插值所取得的顏色進行測試。
Per Pixel Lighting & Specular(個別像素照明、反光貼圖),以像素著色器進行擴散反射與鏡面反射雙方的光照演算。這裡也是以像素單位的法線向量以「頂點水平的法線向量變成線性插值」的方法處理,光照演算以像素單位個別處理。因而使得像素著色器的演算量大幅增加。
Per Pixel Lighting & Specular & Normalmap(個別像素照明、反光貼圖、法線貼圖)也是以像素著色器演算擴散反射與鏡面反射雙方的光照。不過像素單位的光照演算中所採用的法線向量不光只是將頂點水平的法線向量變成線性插值,法線貼圖的內容也被考量在內。演算量以及貼圖讀出數據增加的關係,負載也大大地增加。
● GPU BENCHMARK(5)~四目交接的帥哥原始人與謎樣球體
此項測試採用直接從 NATURAL BONE 截取下來的畫面,確認 YEBIS 2 的 PostEffect 處理品質變更後的效果。測試項目名稱為「YEBIS Resolution」(YEBIS 解析度)。
登場角色仍延用 NATURAL BONE 裡的原始人,多邊形數量約 1 萬 2000 個。僅採用一個動態的平行光源。光照模組採用像素單位的擴散反射光照與鏡面反射光照的演算。
貼圖記憶體佔用量約 31MB+1MB。遺跡與叢林的背景部份是布景貼圖而非 3D 物件,此貼圖的記憶體佔用量剛好是 1MB,也正好是 GPU BENCHMARK(4)額外多出的部份。
後藤先生表示,本測試的對象其實只針對 PostEffect 部份而已,渲染負載並不在測試對象之列。主要就是針對像素著色器負載與記憶體匯流排頻寬進行測試。
接下來,在本測試裡,不會變更光照與濃淡,只針對 YEBIS 2 的 PostEffect 效果,變更一次渲染後的解析度,共可切換 420×234,800×450,1280×720 三種解析度類型進行測試,此測試方式正是測試項目名稱的命名原由。
如同前面文章所述,主選單裡的品質(Quality)設定,都是在經過一次渲染後進行的解析度設定,而 GPU BENCHMARK 的品質(Quality)設定,也如先前所提,並不會受到影響。也不用擔心會發生重複設定或覆蓋設定的情形。
此外,GPU BENCHMARK 的渲染解析度固定為 800×450,所以當 YEBIS Resolution 的解析度為 1280×720 時,經過一次渲染的影格解析度會比最終影格的解析度還高,後藤先生也証實了這一點。YEBIS Resolution 在解析度為 1280×720 的時候,會將經 PostEffect 處理後的結果縮小至 800×450,並合成為最終影格。稍微做了超出規格外的 PostEffect 效果的處理。
跑分的算法與排名系統
MOBILE GPUMARK 的計算結果表示
MOBILE GPUMARK 的跑分以兩種公式計算。
一種是以幀率做為基礎的計算公式,RIGID GEMS、DEAD PARKING 與 NATURAL BONE 都是採用這種方法。
不過,並不是「累加每秒平均幀率」,而是以每個 DEMO 的總幀數與播放時間來決定,跑分系統是採用「當結束渲染並開始顯示跑分時就會加分」這樣的計分系統。總分就等於是「畫面的影格總數」,但是當實際計算跑分時,會依照 DEMO 場景給予適當的係數「符合的跑分值」,並進行整理 (後藤先生)。
還有一項是針對 GPU BENCHMARK 進行的時間基礎測試。
GPU BENCHMARK 以不依賴硬體性能的 EQUAL CONDTION 方式進行測試,它是一個「最快速度完成渲染就能取得高分」的單純測試方法,不過這個分數的數值是越小越好,因為進行總合成績計算時會加入以累進方式計分的 DEMO 系測試跑分的關係,所以這個部份會調整成適當的分數,一併計算出成績。
最後,將 DEMO 系測試的分數與 GPU BENCHMARK 的分數加在一起,就是總合總合分數。在「RESULTS」畫面裡,會顯示各種測試的分數。
雖然這是一套 Benchmark 軟體,卻沒有公開測試分數的計算方式。一般市面上的 Benchmark 軟體大多會公開計算公式,期待有一天這套 Benchmark 軟體也能公開。
跑分排名網頁的畫面
此外,總和分數可以在 RESULTS 畫面裡,將跑分上傳至 Silicon Studio 的伺服器。伺服器會依照跑分更新「各平台排名(端末ランキング)」網頁。
為達到公正性,伺服器會將世界各國傳來的數據依照不同平台先進行平均化,再排名次。
平台檔案(DEVICE PROFILE)的畫面
在排名網頁裡,點擊平台名稱時,會顯示詳細資訊
跑分排名會在 Silicon Studio 所經營的排名顯示網頁裡公開。此網頁可以在 RESULTS 畫面裡進行連結。
如同先前所述,只有「High」品質設計下的跑分結果才能上傳到分數統計伺服器。排行榜所顯示的名次與分數也是依「High」設定下的跑分進行計算。
另外,從平台傳出跑分數據時,平台的硬體檔案資訊也會一併被傳送。但不會傳送使用者的隱私內容,傳輸的資訊僅針對規格資訊而已。據後藤先生表示,傳輸的規格內容有 CPU 型號、螢幕解析度、搭載記憶體容量、可利用之 OpenGL 擴充 API 資訊等。
對於被傳輸的資訊感到憂慮的人,可以在啟動 MOBILE GPUMARK 後確認看看「DEVICE PROFILE」裡的內容,只有「DEVICE PROFILE」裡的資訊與 Bechmark 測試的分數會被上傳。
點擊排名網頁裡所列出的平台名稱,就可以瀏覽「上傳的規格資訊」。
一般使用者可以從這裡查詢到「產品目錄上未刊載的詳細資訊」,對智慧手機與平板電腦進行遊戲開發的人員來說,也可以掌握「最新平台的硬體規格、各平台的 OpenGL ES API 支援情形」。
另外,後藤先生表示,2012 年年中登場的平台,沒有一台能夠在品質設定為「High」的情形下,進行 DEMO 系測試時,幀數能大幅超過 30fps。因此對於以幀數 60fps 做為上限的智慧手機及平板電腦而言,這套 Benchmark 軟體的分數應該還不至於馬上就被餵飽。
據後藤先生的預測,關於目前 MOBILE GPUMARK 的負載測試,「至少還可以撐個一年,樂觀來看,大概要兩年內,會有平台可以衝到 60fps 的位置」。
接下來,排名網頁會依照各平台的分數進行排名,所以僅能就此掌握「平台效能快慢」的情報,若排序 Equal Condition 方法測試出的 GPU BENCHMARK 的分數,可得出「GPU 核心快慢」的情報。
只要先進行排序,再點擊各平台名稱,就可以看到詳細資訊。依照這個方法操作,在 2013 年 2 月進行排序後,就不難發現「PowerVR Series5 SGX540」「Adreno 320」「Tegra 3」堪稱當下最優秀的三組晶片處理器。
結尾
MOBILE GPUMARK 對於測試自己心愛的智慧手機或平板電腦、朋友的愛機或比較目錄上最新機種性能方面可以給予一些幫助。(※目前在支援機型的說明上仍有不足。)
MOBILE GPUMARK 的圖像表現比起智慧手機或平板電腦平台上的遊戲圖像品質遠遠驚艷許多。在確認「高階圖像品質下的幀率高低」上,應該也有相當的幫助。
若是跑出了不錯的幀率,「你看看這個高品質圖像,我的智慧手機正執行著即時渲染唷。」向朋友誇耀一下也挺有意思的。
顯示「COMING SOON」的項目,代表預定將增加新要素。
後藤先生表示,「自己手上的平台在世界上究竟排在第幾名?」是今後的關鍵語,目前正致力於追加排名要件、指定影格截取功能等新元素。包含提升 Android 平台的互換性,這不是「最後一次釋出」,Silicon Studio 今後仍會繼續堅持發展下去。
Silicon Studio 於 2013 年 3 月將會舉行遊戲開發者會議「Game Developers Conference 2013」(GDC 2013),並計畫在會議中展出 MOBILE GPUMARK。期待日本研發的 MOBILE GPUMARK 可以成為智慧手機與平板電腦界裡的 3D Benchmark 的標準。