― 連載 ―

3DMark06の秘密 第1回「3DMark06で何が変わったのか」

 北米時間2006年1月18日,Futuremarkは,3Dグラフィックス性能ベンチマークソフト「3DMark06」(正確には3DMark06 Build 1.0.2)を公開した。いろいろな批判を受けつつも,業界標準であり続けている3DMarkの新作だが,2006年版では,そこから何が読み取れるのだろうか。今回は,これを説明していくことにする。

3DMarkの歴史を振り返る

 アーカイブファイル自体は4Gamerのミラーからダウンロードしてもらうとして,まずは3DMarkシリーズの歴史をざっと振り返ってみよう。

 

 1990年代,北欧を中心に「メガデモ」(Megademo)という,開発者のグラフィックス技術を誇示するためのデモプログラム公開が流行。その中に,優秀なメガデモを世に送り出し続けて注目を集める「Future Crew」というグループがあった。


Final Reality(1997)

 その後Future Crewのメンバーは,1995年に「Remedy Entertainment」(以下Remedy)という会社をフィンランドで設立する。Remedyはゲームエンジン開発に乗り出すのだが,その一つの成果として1997年のDirectX 5時代に発表されたのが「Final Reality」だ。
 Final Realityは,Future Crew時代のメガデモ「2nd Reality」のDirectX 3D版リメイクといった趣のもの。これがフレームレート計測機能を備えていたことから,ベンチマーカー御用達のソフトになった。

 

 先ほど「一つの成果」と書いたが,Final Realtyはそもそも,三人称3Dシューティング「MAX PAYNE」を開発するための3Dエンジン「MAX-FX」上で動作するソフトだ。Remedyはその後も,MAX PAYNEの完成に向けて作業を進めていくわけだが,Final Realityの成功を受けて,ベンチマーク制作ソフト開発会社「MadOnion.com」がRemedyからのスピンオフ組によってカナダに設立される。以降はMadOnion.comが,次世代3Dベンチマークソフトの完成に向けて,Remedyと協力しつつ,作業を進めていくことになる。

 

 そしてMadOnion.comは1998年,DirectX 6時代に「3DMark99」を発表。これが記念すべき,3DMarkの第1弾だ。  同社はその後,1999年にはDirectX 7向けに「3DMark2000」,2001年はDirectX 8向けに「3DMark2001」を矢継ぎ早に発表。余談だが,Remedyは3DMark2001と同じ2001年に,ようやくMAX PAYNEの発売にこぎ着けている。

 

 MadOnion.comはその後,プロジェクトをいったん解散。開発部隊をフィンランドへ戻し,北米にセールス/サポート部隊を設置する形で会社組織を再編した。これは2002年12月のことで,このときMadOnion.comから改称して誕生したのが「Futuremark」だ。

 

3DMark99(1998年)。MadOnion.comとしてのプロダクト第1弾 3DMark2000(1999年)。Game Testがストーリーを持ち始めるのはここから

 

3DMark2001(2001年)をもってMadOnion.comは解散。カナダのオフィスを畳んでしまう MAX PAYNE(2001年)と3DMark2001は兄弟ソフトといえる

 

 MAX PAYNEの完成後,RemedyとFuturemarkはそれぞれ独自路線を行くことになる。このあたりになると,はっきり覚えている人もいると思うが,DirectX 9世代向けに発表された「3DMark03」は,MAX-FXエンジンではなく,Futuremarkオリジナルエンジン上で動作するものになっている。
 その後,2004年9月に「3DMark05」をリリースし,今回の3DMark06に至るというわけだ。振り返ると,DirectX 9時代が異常なほど長いことに気づかされる。
 ちなみに本家Remedyは,2003年に「MAX PAYNE 2」をリリース。現在はATI Technologies(以下ATI)と密接な連携を図りつつ,大作3Dアクションアドベンチャー「Alan Wake」を開発中だ。

 

Futuremarkとして最初の製品になる3DMark03(2003年) “3DMark04”は欠番となり,DirectX 9.0c対応の3DMark05が2004年に登場

 

3種類のライセンス形態がある3DMark06

 説明しているうちにダウンロードは終わっただろうか。3DMark06には,ダウンロードしてインストールするだけで利用できる無料版のほかに,有料ライセンスが用意されている。ここで確認しておこう。

 

●3DMark06 Basic Edition(無料)

 すぐ上で紹介した無料版がこれ。ディスプレイ解像度や描画エフェクトといった,テスト条件の設定変更は行えない。デフォルト設定のベンチマークテストのみ実行できる。
 また,シェーダ性能やフィルレートなどといった単体テスト「Feature Test」も不可。BGM付きのデモは宇宙船内の戦闘シーン「Return to Proxycon」しか観られない。

 

Basic Editionのデモモードで見られるのはここまでになる

 

●3DMark06 Advanced Edition(19.95ドル)

 ダウンロード版なら19.95ドル,CD-ROM版なら29.95ドルをFuturemarkのサイトで(クレジットカードなどを使って)支払うと,Basic Editionにあったテスト項目や条件の制限はすべて取り払われる。
 さらに,ベンチマークのスコアをグラフ化したり,結果をExcel形式でエクスポートしたりといった,テスト結果の集計機能も利用可能だ。
 デモも,前出の戦闘シーンに加え,ベンチマークで用意されている蛍の森,水棲怪物,完全新作となる南極基地のシーンすべてについて,BGM付きのデモを観られるようになる。
 また「CPU Test」で用いられている3Dシューティングシーンを,3人称視点のシューティングゲームとしてプレイできるようになるのも,Advanced Editionの特典だ。

 

CPU Testに使われているテストシーンをゲームとして遊べるようになる。ただ,ゲームとしてのデキは……

 

●3DMark06 Professional Edition(490ドル)

 基本機能はAdvanced Editionと同じだが,3DMark06の商用利用が可能になる。要するに,PCショップ店頭デモなどに利用可能となるのだ。そのため,Professional Editionでは,デモシーンを無限ループで実行できるようになっている。
 また,コマンドラインにオプションを与えることで,GUI操作なしでベンチマークテストを実行したり,複数条件でのテストを連続実行させるバッチ処理などといった,PC系メディアのベンチマーク記事作成に向いた特殊機能も用意される。
 なお,Professional EditionにもCD-ROM版は用意されており,やはりプラス10ドルで購入可能だ。

3DMark06の動作条件

 無料ということもあり,読者の多くはBasic Editionを試してみることになると思うが,動かしてみる前に,一度動作環境をチェックしてみたほうがいいかもしれない。というのも,3DMark06の動作環境がかなりシビアになっているからだ。

 

 DirectX 9世代の最後になると思われるベンチマークソフトということもあって,3DMark06では,動作環境の最低ラインがかなり引き上げられている。
 2.5GHz,もしくはモデルナンバー2500+以上のCPUに,メインメモリ1GB以上,HDD空き容量1.5GB以上というのは,PCで3Dゲームを積極的にプレイしている人からすると,まあ,大したことはないと思う。問題は,グラフィックスカード周りだ。
 なんといっても厳しいのは,グラフィックスメモリが256MB以上という条件。主にオンラインRPGをプレイしているような人だと,グラフィックスチップ世代は最新であっても,グラフィックスメモリ容量は128MBという,ミドルクラスカードを所持している人が多いはずだ。実際には,搭載メモリ容量128MBのグラフィックスカードでもテスト自体は行えるが,この場合,テクスチャなどの3Dリソースがメインメモリに配置されてしまうため,パフォーマンス(=ベンチマークスコア)は大幅に低下してしまう。

 

 また,高いスコアを得るためには,プログラマブルシェーダ3.0(Shader Model 3.0,以下SM3.0)世代のグラフィックスチップが必須になる点も,ハードルが高い。
 最低動作環境こそ,確かにプログラマブルシェーダ2.0(以下SM2.0)以上となっている3DMark06だが,実は,SM2.0世代のグラフィックスチップだと一部のテストを実行できず,総合スコア「3DMark Score」が低下してしまう(詳細は後述)。

 

 つまり,3DMark06を満足に動作させるためには,グラフィックスメモリを256MB以上搭載する,SM3.0対応グラフィックスカードが必要なのだ。動作確認済みグラフィックスチップのリストはFuturemarkのサイトで公開されているから参考にしてほしいが,ここでは,すべてのテストを満足に動作させるには,GeForce 6600以上,もしくはRadeon X1300以上が必要と示唆されている。

改良された3DMark06のHDRレンダリングパス
〜GeForceではアンチエイリアスを有効にできない!?

 さて,そろそろ実際に動作させてみよう。
 するとすぐに分かるが,3DMark06のメインテスト4シーンのうち3シーンは,3DMark05からの流用。これに,前出の新作,南極基地のシーンを加えた形で成り立っている。同じDirectX 9.0c世代の3Dベンチマークソフトということで,“3DMark05 Second Edition”的なイメージというか,マイナーチェンジ版的な位置づけなのだろう。とはいえ,レンダリングエンジンには比較的大きく手が入っており,技術的視点で見るとかなり進化している。

 

 新開発の改良型レンダリングエンジンが積極活用されるのは,「HDR/SM3.0 Graphics Test」と呼ばれる,水棲怪物と南極基地の後半2シーンだ。ここでは,テスト名からも分かるとおり,新型のハイダイナミックレンジ(High Dynamic Range,以下HDR)レンダリングが用いられている。

 

HDR/SM3.0 Graphics Test 1とされる「Canyon Flight」。水棲怪物ともども,3DMark05からの続投となる こちらはHDR/SM3.0 Graphics Test 2「Deep Freeze」。南極基地における日中の様子を描く

 

 HDRレンダリングについて簡単にまとめると「PCディスプレイで標準的な24bit“フルカラー”,1677万7216色を大きく超える色空間を使ってレンダリング(≒描画)することで,現実世界の明るさを表現しようとすること」だ。本連載「Half-Life 2: Lost CoastでHDRレンダリングの実体をチェックする」で詳しく解説しているので,ぜひそちらを参照してほしいと思う。

 

 3DMark05でもHDRレンダリングは用いられており,「レンダーターゲット」(Render Target:レンダリング対象のフレームバッファ)として,αRGBが各16bit浮動小数点(FP16)の「FP16-64bitバッファ」を活用していた。一方,テクスチャはαRGBが整数8bitの24bit(正確にはαチャネル8bitがあるから32bit)bitカラーの通常のLDR(Low Dynamic Range)ベースで,ブレンディングなどのポスト処理もシェーダで行われていた。シーンを別視点から実際にレンダリングして生成する動的な環境マップをLDRテクスチャで生成すると,その時点でHDR陰影が消失してしまうし,ブレンディングをシェーダで行うと高負荷になってしまう。下の図の左下側のようなイメージだ。

 

3DMark05と3DMark06におけるHDR陰影の違い。太陽などのHDR光源から発せられる光が水面に映り込むとき,3DMark05では,その時点でHDRが失われてしまうが,3DMark06では保たれる

 

 これに対して3DMark06の改良型HDRエンジンでは,(すべてではないと思われるが)テクスチャもHDRフォーマットのFP16-64bitテクスチャが利用され,マルチパスレンダリングにおけるポストプロセスの基本処理であるアルファブレンディングについてもFP16-64bit次元で行われる。なお,この実行にはSM3.0世代のグラフィックスチップ,言い換えればGeForce 6シリーズ,もしくはRadeon X1000シリーズ以上が必要だ。

 

Canyon Flightのテストは,シェーダプログラムがSM3.0専用のものへ置き換わったことにより,各材質の質感表現がリファインされている。新HDRレンダリングによるフォトリアリスティックなビジュアル表現にも注目

 

マルチパスレンダリングとは,同一シーンを複数回のレンダリングを実行して行うレンダリング技法のこと。

 

 3DMark06では,FP16-64形式のテクスチャに対しても,テクスチャ適用時には(単純なポイントサンプルではなく)テクスチャフィルタリングを利用する。これはSM3.0世代のグラフィックスチップでサポートされるフィーチャーなのだが,GeForce 6200など一部のローエンド向けSM3.0世代グラフィックスチップではサポートされていないのだ。こうしたケースにおいて,3DMark06では,ピクセルシェーダプログラム側で実装したフォールバックシステムで代替処理を行っているとされているが,当然,パフォーマンスが低下するはずである。

 

 ところで,FP16-64形式のHDRテクスチャは,現在のDirectX 9ではハードウェア圧縮するための標準メソッドがない。Radeon X1000シリーズに実装された「3Dc+」はFP(浮動小数点)テクスチャ圧縮に対応するとアナウンスされているが,実際にはFPを指数と仮数に分解して圧縮する,いわば「かなりソフトウェア寄り」の方策であり,パフォーマンス効率的にはあまりいい方法とはいえない。要するに,FPテクスチャの多用はかなりの容量を食いつぶすことになるわけで。これが3DMark06において256MBものグラフィックスメモリを必要とする要因の一つになっている。

 

南極基地のシーン「Deep Freeze」。疑似表面下散乱などを使った,透き通るような氷の表現に注目

 

 そして,最も重要なのは,二つのHDR/SM3.0 Graphics Testにおいて,アンチエイリアシング処理がFP16-64bitバッファ次元で行われることだ。
 なぜ重要なのか。それは,FP16-64bitバッファ次元でのアンチエイリアシングを有効にできるのは,2006年2月下旬時点でRadeon X1000シリーズのみだから。もっと言うと,GeForceシリーズでは,最上位のGeForce 7800であってもこの機能を持っていないため,3DMark06のテスト条件設定でアンチエイリアシングを有効にすると,HDR/SM3.0 Graphics Testを実行できないのである。

 

 4Gamerではこれまで何回か,一切の分析を保留したまま,3DMark06のスコアを参考値として掲載しているから,これをちょっと振り返ってみよう。
 一例としてRadeon X1900のレビュー記事を見てみると,アンチエイリアシングを有効化したときと有効化していないときでは,相対的にGeForce 7800がRadeon X1900より有利に“見える”結果が出ている。だが,記事中でも明言されているとおり,これは「グラフィックスドライバ側でアンチエイリアシングを有効化」したもの。要するに,持っている機能を超えて,強制的に設定だけしてみたものであり,実際には有効になっていないのだ。
 下の画面がその証拠。少なくとも現時点では,3DMark06がGeForceとRadeonの直接比較に適したアプリケーションとは言えないだろう。

 

3DMark06からアンチエイリアシング無効,ForceWareでも無効な状態でGeForce 7800 GTXを利用したとき。サムネイルはシーンの一部を拡大したものだ 同じくGeForce 7800 GTXを利用して,今度は3DMark06からアンチエイリアシングを無効に設定しつつ,ForceWare上では8xs設定で有効にしてみた。やはりアンチエイリアシングは効いていない
Radeon X1900 XTを利用すると,3DMark06のテスト設定メニューから4倍(4x)のアンチエイリアシング設定が可能だ。この画面は4倍設定時だが,ちゃんとアンチエイリアシングがかかっているのが分かるだろう。Radeon X1000シリーズのアドバンテージといえそうだ

 

 そして細かいことだが,3DMark06のHDRレンダリングでは,シーン内の高輝度部から光があふれ出して見えるブルーム表現も強化されている。3DMark05でも「抽出した高輝度部を低解像度化して(≒拡大して)ぼやけさせ,これを元の画像と合成する」という,ごく基本的なブルーム表現は用いられていたが,3DMark06では,より手の込んだものに進化しているのである。

 

 具体的にいうと,3DMark06では高輝度部が放射状に散乱するグレア効果のポスト処理シェーダパスが追加され,高輝度部分のまばゆさをさらに強調する演出が盛り込まれているのだ。
 グレア効果は水面に映り込んだ一次反射光以降においても発生するようになっている。

 

3DMark06の「Setting」オプションにある「Disable Post-processing」のオン/オフで見栄えの違いを比べてみた。どちらがどちらと言うまでもないほど,違いは明快 水面に映った太陽からもグレアが発生している

 

 また,太陽のような高輝度光源を直視したときにはレンズフレア効果が付加され,そのレンズ内反射によって出現する虚像は,カメラ用語でいうところの「6角形の絞り形状」が表れる,凝ったものになっている。
 HDRレンダリングパスが進化型に改良されただけでなく,ポスト処理も数段増えたことにより,HDR/SM3.0 Graphics Testはより重くなったというわけだ。

 

フレーム内の高輝度箇所から光芒(光の筋)が伸びるようなポスト処理を行うので,複数の木漏れ日から放射状に広がる効果も表現できる こちらは本文でも触れたレンズフレア効果の例。一定条件下ではこのような「絞り形状の虚像」が見える

3DMark06のSM3.0対応度は?

3DMark05ではプログラマブルシェーダモデルを選択できた

 3DMark05では,テスト前に実行されるシェーダのランタイムコンパイラの動作プロファイルとして「SM3.0」を選ぶと,SM3.0シェーダを生成できたが,根本的にはSM2.0世代のシェーダ設計だった。
 この点3DMark06ではHDR/SM3.0 Graphics Testなど,いくつかのテストでSM2.0世代のグラフィックスチップを“門前払い処分”とした。先に「SM2.0世代のグラフィックスチップだと一部のテストを実行でき」ないと書いたのは,このことである。

 

 SM2.0世代を切り捨てたことで,SM3.0への積極的な対応は明らかに進んでいる。
 とくに目立つのはSM3.0の新命令セット「ピクセルシェーダにおける動的条件分岐命令」だ。SM2.0世代では,状況に応じたピクセルシェーダプログラムを用意して切り替えなければならなかったのだが,SM3.0では,状況に応じて動作モードを切り替えるような,適応型(≒異方性)のピクセルシェーダプログラムを実現できるようになっている。3DMark06ではこうしたSM3.0における新命令や,シェーダプログラム長(実際には命令スロット)制限の緩和(SM2.0では96,SM3.0では512以上)などといった恩恵を最大限に受け止める形で,SM3.0に対応しているのだ。

 

 本連載の読者ならばATIとNVIDIAではSM3.0の対応度が異なるということを記憶しているかもしれない。SM3.0には,頂点シェーダ(Vertex Shader)ユニットからテクスチャアクセスを行う頂点テクスチャフェッチ(Vertex Texture Fetch,以下VTF)という技術が提供されたのだが,Radeon X1000シリーズはこれをサポートしなかったのだ。

 

VTFを活用するShader Particlesテストは,Radeon X1000シリーズだと選択すらできないが,Shader ParticlesテストはFeature Testの一つなので,総合スコアへの影響はない

 このあたりの詳細については連載のバックナンバー「ATI,Radeon X1000シリーズ発表でSM3.0世代に突入」や,2005年末に行ったATIの担当者インタビューに詳しいので,これらを参照してほしいが,重要なことは,ホワイトペーパーに「今回の3DMark06のベンチマークスコア算出のために実行されるメインテストにおいて,VTFは利用されていない」という旨の記載があることである。つまり,Radeon X1000がVTFに対応していないことは,3DMark06のスコア的には,一切不利にならないのだ。

 

 もっとも,Feature Testに含まれる「Shader Particle」テストはVTFを活用しているので,Radeon X1000だと実行できないわけだが。

 

 さて,今回はここまでとなる。第2回では,3DMark06の影生成について踏み込んでみようと考えているので,お楽しみに。(トライゼット 西川善司)

 

第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/001/3dmark06_01.shtml