― 連載 ―

3DMark06の秘密 第3回「スコアの正体」

第2回へ   次へ

 「3DMark06」の詳細を掘り下げる話の第3回だ。今回はいよいよ,ベンチマークテスト部分に踏み込んでいく。3DMark06では,どういったグラフィックス処理を行い,いったい何をテストしているのだろう? そして,テスト結果からは,何が読み取れるだろうか。

3DMark06におけるスコア算出の仕組み

総合スコアでは,CPU Testsの結果が考慮されるようになった

 3DMark06のテストは,ゲームライクなリアルタイム3Dグラフィックスシーンの再生「Graphics Tests」とCPU性能テスト「CPU Tests」,グラフィックスチップの特定機能を集中評価する項目テスト「Feature Tests」からなっている。

 このうち,業界やユーザーを一喜一憂させる3DMark06の総合スコア「3DMark Score」は,Graphics TestsとCPU Testsから求められる仕組み。「3DMark05」までは,Graphics Testsの結果だけが総合スコアに反映されていたが,3DMark06では,CPU Testsの結果も反映されるようになったのだ。

 

 3DMarkは「近未来の3Dゲームを動作させるためのPCシステムの性能指標」になることを目指している。3DMark06で総合スコアにCPU Testsが絡んできたということはつまり,Futuremarkが「今後の3Dゲームではグラフィックス性能だけでなく,CPU性能も重要視される」という予測を立てた,ということなのだろう。

 

 スコアの算出公式は,ホワイトペーパーによれば以下のとおり。

 

[1]SM2.0 Score=120×(SM2 GT1 fps+SM2 GT2 fps)÷2

[2]HDR&SM3.0 Score=100×(SM3 GT1 fps+SM3 GT2 fps)÷2

[3]CPU Score=2500×平方根(CPU1 fps×CPU2 fps)

[4]GS=(SM2.0 Score+HDR&SM3.0 Score)÷2

[5]3DMark Score=2.5 ÷((1.7÷GS+0.3÷CPU Score)÷2)

 

 これには少し説明が必要と思う。
 まず[1]だが,これはプログラマブルシェーダ2.0(Shader Model 2.0,以下SM2.0)のスコアをどうやって求めるかの計算式だ。SM2.0レベルのシェーダによって描画されるシーケンスを再生するもので,テストシーン自体は3DMark05から持ち越された「Return to Proxycon」と「Firefly Forest」の二つとなる。
 第2回で説明したように,力業の新しい影生成技法を組み込んだことで前作よりも描画負荷が高まったこの二つを,順に「SM2 GT1」「SM2 GT2」(GT:Graphics Test)として,算出されたフレームレート(fps)を合計。そしてそれを2で割り,120をかけるというわけだ。

 

 [2]はプログラマブルシェーダ3.0(Shader Model 3.0,以下SM3.0)のテスト。第1回で説明したように,浮動小数点(FP)バッファやFPテクスチャを使用した高負荷なハイダイナミックレンジ(HDR)レンダリングパスを実行してシーケンスを再生するものである。テストシーンは3DMark05から持ち越された「Canyon Flight」に加え,3DMark06向け完全新作の「Deep Freeze」が用意されているというのは,第1回で説明したとおり。
 二つのテストを順に「SM3 GT1」「SM3 GT2」として,合計を2で割るところまでは[1]と同じ。ただし,最後にかける数は,100になっている。

 

 [3]で求められるCPU Testsのスコアは,CPUの演算性能とマルチスレッド性能を計測するもの。テストはデュアルコアCPUやHyper-Threadingテクノロジ採用CPUで有利になるような設計だ。実行条件を変えた「CPU Test 1」(CPU1)と「CPU Test 2」(CPU2)という2種類のテストにおけるフレームレートを合計し,その平方根を算出。それに2500を掛けたものがスコアになる。

 

 次に[4],「GS=(SM2.0 Score+HDR&SM3.0 Score)÷2」は,総合スコアである3DMark Scoreを求める前段階にあたる計算式だ。GSは「Graphics Score」の略。
 興味深いのは,「HDR/SM3.0 Graphics Testを実行できないとき」に救済措置があること。SM3.0非対応グラフィックスチップを利用してテストを行ったとき,[4]の式のまま計算すると,GSはSM2.0 Scoreの半分になってしまう。しかし3DMark06ではこの場合,GSはSM2.0 Scoreの半分ではなく,「SM2.0 Score×0.75」とするのである。
 これは意外にSM2.0が有利な措置といえる。SM3.0非対応グラフィックスチップであっても,そのSM2.0 Scoreスコアが,競合となる別のSM3.0対応グラフィックスチップの33%増しを達成できれば,GSでは追いつく計算になるからだ。

 

 最後の[5]が,最終的な3DMark Score,つまり総合スコアの計算式となるわけだが,これは2.5を重み係数にした調和平均を求めたもの。なぜ2.5なのかについてはホワイトペーパーにも記載がないが,3DMark06登場時点のハイエンドグラフィックスカードを用いたときに,標準設定時のスコアが3000程度になるよう,調整した結果ではなかろうか。
 総合的に,3DMark Scoreに対するSM2.0 Scoreの比重が高い点,そしてCPU Scoreの影響が低めに抑えられている点は興味深い。

 

 以上,計算式について理解したところで,続けて各テストの技術的側面を理解しつつ,そのテストの意味を考察していくことにしよう。

SM2.0 Graphics Test 1(SM2 GT1)
「Return to Proxycon」

 正規軍輸送船が積載している謎の積み荷を宇宙海賊が奪いに突撃してきて,輸送船ハンガー内で激しい戦闘が繰り広げられるという,3DMark05の宇宙船内戦闘シーン「Return to Proxycon」。このシーケンスをリファインして,3DMark06の新エンジンで動作させたものが,SM2.0 Graphics Test 1だ。シーン自体は3DMark05と同一だが,シーン内光源の数が増え,投射される影も増えている。

 

3DMark05(左)と3DMark06(右)で,ほぼ同一のシーンを見てみた。視点の背後に平行光源(太陽のように,無限遠にあると想定されて。平行に降り注ぐ光源)が設定されたため,手前から奥に伸びる影が追加されている

 

これらはいずれも3DMark06から。この尋常でないパーティクルの数も,グラフィックスチップに対してそれなりの負荷になる

 

 宇宙船内は金属物が多いが,その材質表現の大半は鏡面反射モデルの一般形,「Blinn-Phong」(ブリン-フォン)の鏡面反射モデルを適用するピクセルシェーダによって実現されている。Blinn-Phongの鏡面反射モデルとは,視線方向,光源方向,面の法線の向きによって算出される,金属のような光沢がある反射モデルのこと。Blinn-Phongの鏡面反射モデルでは“べき乗”計算が必要になってくるが,3DMark06ではこの計算結果をテクスチャに展開してテーブル参照で代行するという,SM1.x的なアプローチで実装している。

 

3DMark05(左)と3DMark06(右)の,ほぼ同一シーン。背景の影に差異が認められるものの,それ以外,例えば金属材質表現のシェーダ効果に大きな違いはないようだ

 

 シーン内の光源は全部で26個。うち2個が平行光源で,12個がCSMでもOSMでもない通常のシャドウマップ技法による影付きスポットライト(=光る方向をマスクした点光源),残りが普通の点光源となっている。

 

 ハンガー内にある2個の平行光源のうち,1個は天井にある照明を表したものになっており,ここからの影は第2回で説明したカスケード・シャドウマップ技法(Cascaded Shadow Maps,以下CSM)によってシーン内の3Dオブジェクトのすべてに対して大局的に生成される。

 

ここでもほぼ同一シーンを利用して,3DMark05(左)と3DMark06(左)を比較してみると,影の数が全然違うのが分かる。ただ,光線銃の跳弾が点光源として影を生む3DMark06において,影はシャドウマップ技法によって生成されるため,よく見ると影にジャギーが出ている。左側の毛羽立った人形(ひとがた)の影がそれだ

 

 このほか,無数の点光源がシーン内に配置されており,その主だった点光源からはやはり第2回で解説した「全方位シャドウマップ」(Omnidirectional Shadow Mapping,以下OSM)技法による影生成が行われている。OSM技法が使用している6面型のシャドウマップは,これも第2回で説明したように,1024×1024テクセルを6面で構成した6面体状のキューブ深度マップ。OSM技法をすべての点光源に適用すると負荷が高すぎるため,3DMark06では,存在感のあるものにのみOSM技法を使い,それ以外のオブジェクトに対しては,通常のシャドウマップ技法による影生成を行っているという。

 

いずれも3DMark06から。廊下の赤色回転灯による影はOSMによるものだ。よく見ると影のジャギーが強いが,動きが速い光源の影にはこれで十分といえば十分かもしれない

SM2.0 Graphics Test 2(SM2 GT2)
「FireFly Forest」

 柔らかな満月の光に照らし出された神秘的な森の中を,妖精のような蛍が周囲を明るく照らしながら飛び回る――。この「FireFly Forest」も3DMark05からの持ち越しである。もちろん,まったく同じというわけではなく,SM2.0 Graphics Test 1と同様に新型エンジンで動作しており,描画負荷が高まっている。点光源として飛び回る妖精蛍が3DMar05の1匹から2匹に増えているので,描画負荷の高まりが見た目に分かりやすいのが特徴だ。

 

3DMark05(左)と3DMark06(右)の比較。蛍が2匹に増え,それぞれ緑と紫の光を発しているほうが3DMark06だ

 

 空を飛ぶキャラクターを描いてはいるものの,蛍の飛行高度は低く,終始カメラは人間の目線程度の高さで移動するので,実質的には地に足の着いた形のシーケンスとなっている。このテストも実質,SM2.0 Graphics Test 1と同じように,三人称視点の3Dゲームを想定したものといっていいだろう。
 SM2.0 Graphics Test 1と違うのは,奥行き方向が深い屋外シーンであることと,シーン内に膨大な数の草や木々が登場する点だ。しかもすべての草木の枝葉が独自のタイミングでそよ風に揺れている。つまり動的なアニメーションが適用されているわけである。

 

 これほどの量の草木をマップ上にあらかじめ配置してアニメーションを実行していたのでは,CPUとメモリの負荷が大きくなりすぎてしまう。このため3DMark06では,視点(カメラ)から見える視界内に対してのみ,動的に草木を生やしているのだという。ユーザーから確認するすべはないが,カメラから見えていない部分に草木はまったく生えていないということだ。

 

木々がうっそうと茂っている森のシーンだが,マップが持つのは「どこにどんな木々が生えている」というデータのみ。視界内の必要な部分だけに実際の草木を配置して描画するようになっている。ちなみに実際の3Dゲームでも,ゲーム進行やキャラクターに関係してこない草木などはこのように管理されることが多い

 

 また,草木はかなり複雑な形状をしているが,カメラからの距離に応じて遠くのものは低ポリゴンモデルに切り換えるLOD(Level of Detail)処理が実質されているという。決められたシーンを再現するデモシーケンスではあるが,その実装はかなり実践的なゲームエンジンライクになっているようだ。

 

草木モデルにはLOD処理が適用されているとのことだ。動的LODなのかハイ/ロー切り替えのLODなのかは不明。シーンが暗いこともあって,LOD弊害のポッピング現象(LOD切り替えタイミングがユーザーにバレてしまう弊害)は確認されなかった

 

 地上の岩や草木の材質シェーダは,拡散反射と,SM2.0 Graphics Test 1にも使われていたピクセル単位のBlinn-Phongの鏡面反射を,それっぽい質感に見えるように調整している。さらに岩にはそれらしいハイライトが出るよう,スペキュラマップ(光沢マップ)も適用している。

 

3DMark05(左)と3DMark06(右)の比較。材質表現シェーダに大きな変化は見られない

 

 影について見てみよう。まず天空から降り注ぐ月光は平行光源として設定され,これがCSM技法によってシーン全体対しての大局的な影を生成する。
 2匹の蛍は動的な点光源として設定され,これが周囲の全方位に影を生成する。この影の生成は,1面あたり1024×1024テクセルの6面体シャドウマップを使用したOSM技法によるものだ。3DMark05だと,このシーンの6面体シャドウマップ解像度は1面あたり512×512テクセルだったから,3DMark06ではこれだけで4倍の帯域を食っていることになる。しかも,蛍は2匹。OSM技法の影生成だけで,負荷は単純計算で3DMark05の8倍だ。

 

ここでも3DMark05(左)と3DMark06(右)で比較してみると,影の投射範囲が狭いこともあってか,6面体シャドウマップの解像度が高められたOSM技法のメリットは,見た目にはあまりにない。6面体シャドウマップの解像度アップは,あくまでベンチマークテストとしての負荷増大策ということなのだろう

 

これらはいずれも3DMark06から。蛍がフレームイン(=出現)する前に出ている影は,月の光からのCSM技法によるものだ。蛍が登場すると,その光が月光よりも周辺を強く照らすため,CSM技法の影はかき消される

 

 このほか興味深いのは,光散乱シミュレーションによる空や霧の空気遠近表現だ。このシーンの随所で確認できる,柔らかな,空気感のある空の霞や森の中の霧の表現は,以前のグラフィックスチップで標準搭載されてきた,視点からの距離に応じて奥の映像を沈ませる単純な「フォグ」ではない。「光散乱シミュレーション」(Light Scattering Simulation)によって実現されているのだ。ちなみにこの光散乱シミュレーションは,次に紹介するHDR/SM3.0 Graphics Testsのほうで,より効果的に活用されており,その効果が分かりやすいので,解説もそちらで行いたい。

 

3DMark05(左)と3DMark06(右)との比較。奥の木々が霞んで見えるのは光散乱シミュレーションによるものだ。3DMark05も同様の処理を行っていたのでビジュアル的な差異はほとんどない

 

第2回へ   次へ

 

タイトル 3DMark06
開発元 Futuremark 発売元 Futuremark
発売日 2006/01/18 価格 19.95ドル(Advanced版)
 
動作環境 OS:Windows XP(+DirectX 9.0c December 2005 Update),CPU:Pentium 4/2.50GHzまたはAthlon XP 2500+以上,メインメモリ:1GB以上,グラフィックスチップ:シェーダモデル2.0対応以上,グラフィックスメモリ:256MB以上,HDD空き容量:1.5GB以上

COPTRIGHT(C)2006 FUTUREMARK CORPORATION

【この記事へのリンクはこちら】

http://www.4gamer.net/specials/3de/3dmark06/003/3dmark06_03_01.shtml