■多和田新也のニューアイテム診断室■Shader Model 2.0完全対応の「3DMark05」 |
既報のとおり、Futuremarkから9月29日深夜(日本時間)に「3DMark05」がリリースされた。本稿では、DirectX 9のShader Model 2.0(ピクセル/バーテックスシェーダ2.0)をフルサポートした本製品の詳細を紹介する。
●Shader Model 2.0以上を必須とするテスト内容
3DMark05は3Dベンチマークソフトの定番ともいえる3DMarkシリーズの最新版で、2003年2月にリリースされた「3DMark03」の後継にあたる。3DMark03もDirectX 9に対応した3Dベンチではあったが、こちらはどちらかというとDirectX 8に対応したハードウェアのテストで、それにプラスして、DirectX 9も可能というレベルであり、スコアに直結するテストとしては唯一、Game4のみピクセル/バーテックスシェーダ2.0に対応するに留まった。今回の3DMark05では全テストでピクセル/バーテックスシェーダ2.0に対応する。
それでは、3DMark05で実施される各テストを紹介していこう。
■Game Test 1「Return to Proxycon」
ストーリー上は3DMark03に含まれたGame Test 2「Battle of Proxycon」の続編となるもので、襲撃を受けた貨物船内の情景を描いている。DOOM3などに代表されるようなFPSゲームでのパフォーマンスをイメージできるものだ。ここでは、Perspective Shadow Mapを使った影の表現、ピクセルごとのSpeculer(光の当たり方)の表現、壁や床の構造物のリアルな質感を実現している。
【画面1】Game Test 1のスクリーンショット(300フレーム目) ※以下、サムネールをクリックするとPNG形式の画像が開きます |
【画面2】Game Test 1のスクリーンショット(1,800フレーム目) |
■Game Test 2「Firefly Forest」
月夜の草原(というよりは林といった雰囲気だが)を蛍が飛び交う情景を描いたテスト。屋外の風景をイメージした3D描画のパフォーマンスをチェックできる。ここでは、月と蛍という2つの光源が作り出す光と影を、動的に表現しているのが見ものである。また霧を通過する月明かりや、風にゆらめく木々や草のアニメーションの表現もポイントとなる。
【画面3】Game Test 2のスクリーンショット(800フレーム目) | 【画面4】Game Test 2のスクリーンショット(1,400フレーム目) |
■Game Test 3「Canyon Flight」
海中生物からの襲撃をかわしつつ峡谷を進むジュール・ベルヌ型の飛行船を描いたテスト。Game Test 2と同様に屋外の風景を舞台にしたテストであるが、こちらの方が、より壮大なスケールで描かれるものをイメージしている。
岩肌の表現はピクセルシェーダ2.0を用いたもので、非常に精細なディテールを実現している。また、岩肌や巨大生物などの水面への反射は6回のレンダリングによって表現されている。巨大生物が水面から飛び出す瞬間の水しぶきの表現や上空の太陽光のぼやけた表現などにも注目したい。
【画面5】Game Test 3のスクリーンショット(1,100フレーム目) | 【画面6】Game Test 3のスクリーンショット(2,000フレーム目) |
■3DMark Score
3DMark05の総合スコアは、このGame Test 1~3の結果を元に、下記の式に当てはめて算出される。3DMark03以前ではテストごとに採用される機能が違うために各テストの重み付けが変えられていたが、今回は基本的に同じ機能を使っているので各テストは同等のものとして見なされているようだ。
計算式:3DMark05 score=(Game Test 1×Game Test 2×Game Test 3)^0.33×250
■CPU Test
これは3DMark03から実装された機能で、バーテックシェーダをハードウェア処理せず、CPUでソフトウェア処理した場合のパフォーマンスを見るテストだ。デモ自体はGame1とGame3のものが利用され、640×480ドットの解像度でテストされる。各テストの結果から下記の算出式を用いて、「CPU Score」という独自の数字が弾き出される。
計算式:CPU Score=(CPU Test 1×CPU Test 2)^0.5×1,500
■Feature Test
Feature Testは過去の3DMarkシリーズにも実装されてきたもので、フィルレートや各シェーダの個別性能などを測定するためのテストが盛り込まれている。ここでは、シングルテクスチャ/マルチテクスチャの各フィルレートを計測するテスト、Game Test 3の岩肌のみを描画してピクセルシェーダの性能を測定するテスト、2種類のバーテックスシェーダテストが実施できる。
■Batch Size Test
【画面11】3DMark05で新たに採用されたBatch Size Test(画面は2,048個のポリゴンを利用したもの) |
3DMark05で新たに追加されたテストで、非常に単純な処理ながら、現在のビデオカードドライバでは見逃しがちなウィークポイントを突いたものだ。複数の三角形(ポリゴン)によって図形を表現する際には重なり合う頂点が発生するが、この重なり合う頂点をいかに認識するかにより、計算を必要とする量は大きく変化するため、各ビデオカード(とドライバ)の頂点計算に対する最適化度合いを見ることができるわけだ。
テストは“一定個数”のポリゴン群を使った128×128ドットの網目状のタイルを128個敷き詰めたものを描く。この一定個数については8/32/128/512/2,048/32,768個の6種類が用意されている。
●テスト方法とライセンスによる違い
もう少し具体的にテスト方法等について紹介しよう。3DMark05のユーザーインターフェイスは、3DMark03や同社のPCMark04とほぼ同じデザインになっている(画面12)。左下の[Run 3DMark]ボタンを押すことでテストが開始され、テスト結果が提示されるというスタイルも、これまでと同等である(画面13)。
【画面12】3DMark05のメイン画面。これはPro版の画面だが、Free版では下部に広告が表示される以外は同じ | 【画面13】テスト実行後の結果は3DMark Scoreが大きく表示される。各テストの詳細な結果が知りたければ、本文中で触れた参照方法を利用する必要がある |
ちなみに必要とするシステム構成は、
・ピクセルシェーダ2.0以上をサポートしたビデオカード
・2GHz以上のIntelまたはAMDの互換CPU
・512MB以上のメモリ
・1.5GB以上のHDDスペース
・Windows XP/2000(ServicePackを適用したもの)、DirectX 9c、Internet Explorer 6
となっている。このほか、一部のテストではMicrosoft Excelが必要となる。
【画面14】GeForce 4 Ti 4600搭載のビデオカードでは、このようなエラーが表示されテスト自体は実行できない |
過去の3DMarkシリーズでは、前述の通りテストによって要求されるビデオカードのシェーダサポートが異なっていたため、旧世代のビデオカードでも一部のテストが実行できたが、3DMark05は原則としてDirectX 9を完全サポート(つまりShader Model 2.0以上)のビデオカードが必須となる。旧世代のビデオカードでも3DMark05のメイン画面は起動できるが、実行する段階でエラーが出る(画面14)。
3DMark05では3種類のライセンスが用意され、各ライセンスによって実行できるテストや機能が異なる。その違いについては、Futuremarkのサイトにある。
フリー版は広告が表示されるものの、前述のGame Test 1~3およびCPU Testは実行可能であるため、3DMark ScoreやCPU Scoreを割り出すことはできる。だたし、これは解像度が1,024×768ドットに固定されるほか、エフェクトの適用なども行なえない限定されたものである。また、3DMark Scoreを算出するだけならGame Test 1~3を実行するだけでいいのに、CPU Testも実行されてしまうという側面もある。
これがPro版(ダウンロード版19.95ドル/CD-ROM版29.95ドル)になると、一気に利用できる機能が広がる。利用できる主な機能などは下記のとおりである。
・Feature TestやBatch Size Testを含む全テストと実行するテストの選択が可能(画面15、16)
・解像度やフィルタなどのテストセッティング(画面17)
・Image Qualityテスト(画面18)
・Texture Filtering&AAツール(画面19)
・グラフベンチマークモード(画面20、21)
さらに、上位のライセンスとなるBusiness Edition(ダウンロード版240ドル/CD-ROM版250ドル)では、コマンドラインからのテスト実行に対応し、複数のテスト条件をバッチ処理できるようになる(画面22)。
さすがにBusiness Editionは高価であり、バッチ処理が必要になるのは限られた人だけだと思われる。だが、Pro版で提供されるFeature Testやテストセッティングの機能はぜひ欲しいものであり、ベンチマークテストに真面目に取り組もうと思った場合、必ず手に入れておきたいところだ。
テスト結果は、その場で結果を表示できる(画面23)ほか、Futuremarkのサイトで提供される「Online Result Viewer」、さらにPro版以上のライセンスでは、「.3dr」の拡張子で保存し、Excelで参照する方法(画面24)なども用意される。
【画面23】テスト結果表示画面から「Details」ボタンを押せば、各テストの詳細な結果を知ることができる | 【画面24】また、「.3dr」の拡張子で結果ファイルを作成し、Excelに呼び出すこともできる。複数の結果ファイルを呼び出せば画面のように比較もできる |
●ビデオカードごとのテスト結果
それでは、いくつかのビデオカードを用意して3DMark05のスコアを見てみることにしたい。用意した環境とビデオカードは表1のとおりである。主な使用ビデオカードについては、RADEON X700 Proの検証記事と同じものである。そこで使用していないGeForce 6800 GTはNVIDIAのリファレンスカード、GeForce PCX 5750についてはAlbatronの「PC5750」を使った。
ここで、GeForceシリーズのドライバについて補足をしておくと、GeForce 6600 GTに付属してきたForceWare 65.76に加え、3DMark05に最適化したという最新のForceWare 66.51を入手できたので、こちらでもテストを行なっている。ただし、GeForce PCX 5750は65.76では正しく認識できなかった(InfファイルにGeForce 6600/6800シリーズ以外の情報が用意されていない)ため、66.51のみでテストを行なっている。
画面17でも紹介したとおり、3DMark05ではいくつかのテストセッティングを行なえる。解像度や各種フィルタについてはグラフに示している。バーテックスシェーダおよびピクセルシェーダのプロファイルについては、表2に示したとおりビデオカードごとに指定できるプロファイルが異なる。
3DMark05のホワイトペーパーによれば、デフォルトで選択されているものが使用ビデオカードの最適なプロファイル、とのことであり、ここでは表2中の太字で示したプロファイルをそれぞれ使用した。このほか、レンダリングオプションについてはすべてDisableにしてテストしている。
ビデオチップ | ATI RADEON X800 XT(256MB) ATI RADEON X700 PRO(256MB) ATI RADEON X600 XT(128MB) |
NVIDIA GeForce 6800 GT(256MB) NVIDIA GeForce 6600 GT(128MB) NVIDIA GeForce PCX 5750(128MB) |
---|---|---|
Driver | CATALYST 4.9(6.14.10.6483) | ForceWare 65.76 ForceWare 66.51 |
CPU | Pentium 4 550(3.40GHz) | |
マザーボード | Intel D925XCV(Intel 925X) | |
メモリ | PC4300 DDR2 SDRAM 1GB(512MB×2) | |
HDD | Seagate Barracuda 7200.7(ST31,20026AS) | |
OS | Windows XP Professional(Service Pack 1a,DirectX 9.0c) |
バーテックスシェーダ | ピクセルシェーダ | |
---|---|---|
ATI RADEON X800 XT ATI RADEON X700 PRO |
2_0 | 2_0 2_b |
ATI RADEON X600 XT | 2_0 | 2_0 |
NVIDIA GeForce 6800 GT NVIDIA GeForce 6600 GT |
2_0 2_a 3_0 |
2_0 2_a 2_b 3_0 |
NVIDIA GeForce PCX 5750 | 2_0 | 2_0 2_a |
【画面25】GeForce 6600 GTとGeForce PCX 5750(いずれもビデオメモリ128MB)では、1,600×1,200ドット/4xAA/8xAnisoの条件でビデオメモリ不足が発生しテストが行なえなかった |
では、順に結果をピックアップして紹介していきたい。まずは、基本となる3DMark Scoreをグラフ1に示した。また、各テストの詳細な結果を表3~5にまとめている。なお、GeForce 6600 GTとGeForce PCX 5750については、1,600×1,200ドット/4xAA/8x異方性フィルタリング(Aniso)でのテストにおいて、ビデオメモリ不足のエラーが発生してテストが実施できなかった(画面25)。ただし、同一ビデオメモリのRADEON X600 XTではテストが実施できている。
もう1つ、不思議な現象がある。先に3DMark Scoreの算出式を紹介した。これは3DMark05のホワイトペーパーから引用したものであるが、実際にこの式に各結果を当てはめても計算が合わないのである。この点については、現時点では公式発表以上の情報がないため原因は不明である。
さて、結果自体は各ベンダーごと、そして価格帯別にはっきりとしたスコア差が表れている。RADEON X800 XTがGeForce 6800 GTよりワンランク上のスペックを持つが、それ以上に飛び抜けた結果という印象。この傾向は、フィルタを適用したりしても変わらない。
GeForce6シリーズは、ドライバのバージョンアップで大きなスコアアップが確認できた。こうした最適化は3DMark03のときにも見られたことで、今回も例に漏れずといった印象である。ただし、3DMark03のBuild340が登場したときと同様、今回のForceWareのバージョンアップにおいて、描画品質には大きな変化は見られない。参考までにGeForce 6800 GTでテストしたImage Quarityテストの結果を提示しておく(画面26、27)。
【グラフ1】3DMark Score |
1,024×768ドット (0xAA,0xAniso) |
1,024×768ドット (4xAA,8xAniso) |
1,600×1,200ドット (0xAA,0xAniso) |
1,600×1,200ドット (4xAA,8xAniso) |
|
---|---|---|---|---|
RADEON X800 XT | 25.1 | 20 | 16.6 | 12.8 |
RADEON X700 Pro | 13.6 | 10.2 | 8 | 5.7 |
RADEON X600 XT | 6.9 | 4.9 | 4.1 | 1.7 |
GeForce 6800 GT(66.51) | 20.1 | 16.1 | 14.2 | 9.6 |
GeForce 6800 GT(65.76) | 16.1 | 12.5 | 10.8 | 6.7 |
GeForce 6600 GT(66.51) | 14.8 | 10.6 | 8.9 | N/A |
GeForce 6600 GT(65.76) | 11.7 | 8.1 | 7.6 | N/A |
GeForce PCX 5750(66.51) | 2.2 | 1.6 | 1.2 | N/A |
1,024×768ドット (0xAA,0xAniso) |
1,024×768ドット (4xAA,8xAniso) |
1,600×1,200ドット (0xAA,0xAniso) |
1,600×1,200ドット (4xAA,8xAniso) |
|
---|---|---|---|---|
RADEON X800 XT | 15.4 | 11.5 | 10.4 | 7.9 |
RADEON X700 Pro | 8.5 | 5.9 | 5.1 | 3.7 |
RADEON X600 XT | 4.3 | 2.5 | 2.1 | 1.2 |
GeForce 6800 GT(66.51) | 12.9 | 9.8 | 9 | 5.6 |
GeForce 6800 GT(65.76) | 11 | 8.8 | 8 | 4.5 |
GeForce 6600 GT(66.51) | 9.4 | 6.6 | 6.1 | N/A |
GeForce 6600 GT(65.76) | 8.1 | 5.9 | 5.5 | N/A |
GeForce PCX 5750(66.51) | 1.9 | 1.1 | 1 | N/A |
1,024×768ドット (0xAA,0xAniso) |
1,024×768ドット (4xAA,8xAniso) |
1,600×1,200ドット (0xAA,0xAniso) |
1,600×1,200ドット (4xAA,8xAniso) |
|
---|---|---|---|---|
RADEON X800 XT | 27.4 | 21.6 | 18.7 | 14.4 |
RADEON X700 Pro | 14.8 | 10.9 | 9.1 | 6.6 |
RADEON X600 XT | 8.4 | 5.5 | 4.8 | 1.7 |
GeForce 6800 GT(66.51) | 23.1 | 19.6 | 15.2 | 12.7 |
GeForce 6800 GT(65.76) | 17 | 14.4 | 12.6 | 9.2 |
GeForce 6600 GT(66.51) | 16.2 | 11.6 | 9.8 | N/A |
GeForce 6600 GT(65.76) | 13.2 | 9.9 | 8.5 | N/A |
GeForce PCX 5750(66.51) | 3.2 | 2.7 | 1.9 | N/A |
【画面26】GeForce 6800 GT+ForceWare 66.51/1,024×768ドット/4xAA/8xAnisoにおけるGame Test 3のImageQuarityテスト結果 | 【画面27】GeForce 6800 GT+ForceWare 65.76/1,024×768ドット/4xAA/8xAnisoにおけるGame Test 3のImageQuarityテスト結果 |
このほかのテストとして、Feature Testのフィルレートテスト(グラフ2)、シェーダ関連の各テスト(グラフ3)、Batch Size Test(グラフ4)の結果も示しておく。なお、グラフ2~4に関しては、1,024×768ドット/0xAA/0xAnisoの条件でテストした結果のみを提示した。
フィルレートとシェーダ関連のテストについては、大雑把に見た場合3DMark Scoreの傾向と比較して目立った相違は見られない。ただし、フィルレートとピクセルシェーダについてはGeForce 6600 GT、バーテックスシェーダについてはRADEON X700 Proがそれぞれ優位というように、メインストリームのRADEON X700 ProとGeForce 6600 GTについてはテストによって優劣が変わる。
フィルレートについてはクロック、メモリ帯域幅ともに勝るGeForce 6600 GTが勝るのはセオリーどおりといっていい。また、ピクセルシェーダについても各パイプラインに2個の演算ユニットを配置するGeForce6シリーズのアーキテクチャが生きてきたのだろう。
バーテックスシェーダについては、RADEON X700 Proが6個、GeForce 6600 GTが3個と差があるわけで、RADEON X700 Proが好成績なのはうなづける。また、RADEON X800 XTの結果を見るに、個数の問題以前にバーテックス処理自体の性能がよいという可能性も高い。
【グラフ2】Fill-Rate |
【グラフ3】Feature Test - Shader関連 |
最後のBatch Size Testについては、RADEONシリーズとGeForceシリーズで傾向が大きくことなる。GeForceシリーズは描画に使われるトライアングルの構成要素数が増えるのにあわせて、素直に表示できるトライアングル数が増えていく。
RADEONシリーズについては、あるポイントで表示できるトライアングル数が頭打ちになっているが、そこまで加速度的に性能を伸ばしている点に注目したい。ここで描画されるトライアングル数が多いということは、それだけ頂点の数が増えるということだ。ただし、重なり合う頂点をうまく判断すれば計算量は減らせる。RADEONシリーズはこうした処理をうまく行なうことで、このような結果が出たのではないかと推測できる。頭打ちしているのは製品の描画性能の限界がここにある、ということだろう。
【グラフ4】Batch Size Test |
●シェーダプロファイルごとの差
先にも紹介した通り、3DMark05では描画に利用するシェーダのプロファイルを指定することができる。各ビデオカードで利用できるプロファイルが異なるが、このプロファイルを切り替えることでパフォーマンスや描画品質に差があるか、という疑問は当然湧くと思うので、ここでチェックしておきたい。
ここでは、今回使用したビデオカードのうち各ベンダーの最上位モデルとなる、RADEON X800 XTとGeForce 6800 GTでの結果を紹介する。テストはいずれも1,024×768ドット/0xAA/0xAnisoの条件でテストしている。
まずはRADEON X800 XTについてである。表2にも示したとおり、バーテックスシェーダは「2_0」のみ、ピクセルシェーダは「2_0」「2_b」を指定することができる。よって組み合わせは2通りであるが、テストの結果はグラフ5のとおりである。結果は誤差といっていい差であり、プロファイルごとの性能差はないといっていい。また、描画については画面28、29に示しているが、こちらも微妙な差に留まっている。
【グラフ5】Shader Profile別結果(RADEON X800 XT) |
【画面28】RADEON X800 XTにおけるバーテックスシェーダ「2_0」、ピクセルシェーダ「2_0」プロファイルを指定した場合の描画 | 【画面29】RADEON X800 XTにおけるバーテックスシェーダ「2_0」、ピクセルシェーダ「2_b」プロファイルを指定した場合の描画 |
次はGeForce 6800 GTについてである。こちらはバーテックスシェーダが「2_0」「2_a」「3_0」、ピクセルシェーダが「2_0」「2_a」「2_b」「3_0」と非常に多くのプロファイルから選択できる。ただし、「2_x」と「3_0」の組み合わせは利用できず、強制的に「2_x」同士、「3_0」同士に設定されてしまうようなので、組み合わせは7通りとなる。
テストの結果はグラフ6に示したとおりである。ここでは、ピクセルシェーダのプロファイルに「2_0」を選択した場合にのみスコア低下が見られるのが特徴となっている。そのほかの組み合わせのスコアについては、こちらも誤差の範囲といえる違いに留まっている。
描画品質に関しても7通りの結果を画面30~36に示している。バーテックスシェーダ「2_0」&ピクセルシェーダ「2_a」の組み合わせの場合においてのみ、右端に描画ミスとも感じられる描画の違いが生じているが、おおまかに全テストでほぼ同等の描画を見せているといっていいだろう。つまり、Shader Model 3.0のプロファイルを使用することはできるものの、テスト自体にShader Model 3.0の技術は使われていないということになる。
【グラフ6】Shader Profile別結果(GeForce 6800 GT) |
●3DMarkのみで体験できる新世代の描画
以上のとおり、3DMark05について紹介してきた。公開直後こそFuturemarkのサイトへつながりにくくなる事態が発生したが、今は落ち着いており、DirectX 9対応のビデオカードを持っている人は、ぜひ一度試してみてほしい。現状ではShader Model 2.0に特化したベンチマークソフトは皆無であり、これまでとは違う高品位の3D描画を体験できる。
3DMarkが登場するたびに言われることであるが、現状ではShader Model 2.0をフルサポートしたゲームは登場しておらず、この結果が実際のアプリケーションの性能に直結するかといえば、そこには疑問は残る。しかしながら、ビデオカードベンダーの牽引もあって流れが向いていることは間違いない。
もちろん、アプリケーション(ゲーム)が特定のビデオカードに最適化される状況は今後も強まっていくとは思われるが、将来に渡って利用できるビデオカードを判別するうえでの大きな指標にはなると思われる。
ただ、3DMark03であったような、ビデオカードのドライバが3DMark05に対して極端に最適化するような状況だけは避けてほしいと願っている(NVIDIAの最新ドライバについては、その傾向も見て取れるわけだが)。その状況が発生してしまうと、3DMark05のスコアが持つ価値を下げ、ユーザーにとっても参考にしづらい数値になってしまうからだ。
□Futuremarkのホームページ(英文)
http://www.futuremark.com/
□関連記事
【9月30日】【多和田】ATIのメインストリーム向け新GPU「RADEON X700」
http://pc.watch.impress.co.jp/docs/2004/0930/tawada29.htm
【10月1日】ATI、3DMark05最速はX800 XT PEと発表
~オーバークロックユーザーがスコア8,250を達成
http://pc.watch.impress.co.jp/docs/2004/1001/ati.htm
【9月30日】NVIDIA、6800 Ultra SLIで「3DMark05」のスコア7,229を達成
http://pc.watch.impress.co.jp/docs/2004/0930/nvidia.htm
【9月29日】Futuremark、3Dベンチマークソフト「3DMark05」を公開
http://pc.watch.impress.co.jp/docs/2004/0929/future.htm
(2004年10月1日)
[Text by 多和田新也]