テストレポート
テッセレーション,AA,etc。「GeForce GTX 480」の特性をチェックする
その点についてはレビュー記事でチェックしてもらうとして,本稿では,“それ以外”の部分にスポットライトを当ててみたい。新たに実装されたテッセレータや,強化が謳われるアンチエイリアシング周りを中心に,「GeForce GTX 480」(以下,GTX 480)リファレンスカードの特性をチェックしていこう。
GeForce GTX 400シリーズ正式発表レポート記事
GeForce GTX 480レビュー記事
ハードウェアテッセレータの効果とパフォーマンス
さっそくだが,DirectX 11における新要素の中でも,最大のウリといえるテッセレーションから見ていくことにしたい。
バンプマッピング(Bump Mapping)やノーマルマッピング(Normal Mapping)に代表される,従来型の「テクスチャによってディテールを表現しよう」という技術に対し,ポリゴンを増やすことで,物理的にディテールを増やしていくのが,大きな特徴となる。
PC用GPUにおけるハードウェアレベルのテッセレーション機能は,ATI Technologies(※当時)が2002年の「Radeon 8500」で実装したのが最初。その後も,ことあるごとにテッセレーションという言葉が現れては,実際にはほとんど使われずに終わっていたのだが,その点で,「機種依存のオプション機能」扱いから,DirectX 11の機能として標準対応された今回が,転換点になると筆者は見ている。
というのも,テッセレーションという機能自体には使いでがあるからだ。グラフィックスデザイナーは,労力をそれほどかけることなく,より“アップに堪える”グラフィックスを作成できる。しかも,ユーザー側のグラフィックスカードがテッセレーションをサポートしている場合,高性能なGPUならより高いディテールで,そうでない場合でもそれなりの品質で表示できるため,開発者側は「ユーザーがどんな性能のGPUを使っているのか」をさほど意識せず,グラフィックス品質の高いゲームを作成できるようになるのである。
●Stone Giant
というわけで,テッセレーションがどういう映像を作り出すのか,まずはNVIDIAがGTX 480に合わせてリリースしたデモ,「Stone Giant」を見てみよう。
Stone Giantは,下に示したスクリーショットで示すように,テッセレーションのデモであると同時に,ポストプロセス(※レンダリング結果としての2Dフレームに対し,主にピクセルシェーダを用いて画像処理を行うこと)の技法を駆使したサンプルとなっている。
テッセレーションを有効化した状態におけるStone Giantのスクリーンショット。このディテールが標準と考えてほしい | |
同じシーン(※同一フレームではない)で,テッセレーションを無効化したものがこちら。従来型のノーマルマッピングで描画されるが,上と見比べると,どことなくのっぺりした感じになっているのが分かるだろう |
NVIDIAは,このStone Giantデモを,エンドユーザーに配布する予定があるようだ。ただし,GPU PhysXを駆使したデモでもあるので,先々利用しようと思っているなら,「PhysX System Software」のインストールが必須となることを憶えておきたい。事実上,GTX 400シリーズ専用デモ,ということになる。
●Heaven Benchmark 2.0
続いては,Unigine製のDirectX 11専用ベンチマークソフト「Heaven Benchmark」(Version 2.0)をチェックしてみたい。Heaven Benchmarkは,2009年10月に「世界初のDirectX 11対応ベンチマークソフト」として登場したが,3月24日に,バージョンが2.0へと引き上げられている。主な変更点は公式Webサイトに記されているが,新たなテストシークエンスや,よりテッセレーション負荷の高いテストモードの追加など,高負荷寄りの変更が加えられたのがトピックだ。
新たに追加された大型オブジェクト「飛行船」。テッセレーションを利用し,ディテールの細かなグラフィックスで描画される | |
砦のオブジェクトと,それを使ったシーンも新たに追加された(左)。右に示した,「物理演算でたなびく旗」も追加されたオブジェクトだ。新型GPUのリリースに合わせ(?),全体的に負荷の高い方向へ振った改良が加えられている |
●NVIDIA製デモをさらに二つ
さらに,NVIDIA製となるDirectX 11のデモも,二つご覧に入れたい。「Island」とも呼ばれる「Realistic Water & Terrain」は,テッセレーションを利用して,リアルな水面と岩肌を描くデモ,そして「Realistic Character Hair」は,同じくテッセレーションを使って,こちらは髪の毛を表現するデモになっている。
どちらも,過去記事で何度か紹介したことはあるが,今回はGTX 480を使って,前者について,実際にスクリーンショットを取得してみた。
●Heaven Benchmarkでテッセレーション性能を見る
以上,ムービーとスクリーンショットで見比べてみると,確かにテッセレーションの効果は大きいことが分かる。ノーマルマッピングにプラスアルファの手間をかける程度で,見た目をこれだけ変えられるというのはテッセレーションの大きな利点で,筆者が「これは使われるだろう」と予測する理由も,ここにある。
テッセレーションの有効/無効を切り替えながらパフォーマンスを検証可能なアプリケーションとして,今回は前述のHeaven Benchmark 2.0を用いる。本アプリケーションでは,テッセレーションの適用度合いを,無効化/Moderate(有効化,適用度合い小)/Normal(有効化,適用度合い中)/Extreme(有効化,適用度合い高)の4段階から選択できるが,今回は,テッセレーション無効とNormal,Extremeの三つで比べることにした。
ディスプレイ解像度を2560×1440ドットで固定し,スコアをまとめたものがグラフ1となる。
結果はご覧のとおり,GTX 480の圧勝といっていい。ATI Radeon HD 5000シリーズではテッセレータを1基しか搭載しないのに対し,GTX 480では,テッセレータを含むエンジン部を「PolyMorph Engine」(ポリモーフエンジン)として15基搭載するのが大きな特徴だが,両者のスコア差が,Normal時に31.2%のところ,よりテッセレーション負荷が高まるExtremeだと66.5%にまで開くあたりは,この違いが反映されている印象を受ける。テッセレーション負荷が高い局面におけるGTX 480の優位性は明らかと述べてよさそうだ。
続いて,テッセレーション処理に当たって,GTX 480とHD 5870で,どのような特性の違いが出るか,ディスプレイ解像度を1680×1050ドットに落とし,テッセレーションのレベルをNormalに決め打って,ベンチマークが一周する間のフレームレートを1秒単位で記録することにした。
解像度とテッセレーションのレベルを落としたのは,負荷が高すぎる状態だと,両GPUの差が開きすぎ,特性の違いが見づらくなるためだが,ともあれ,結果はグラフ2のとおり。両者のグラフはほぼ相似形であり,テッセレータの特性によるスコア差が生じているのではなく,純粋に「戦争は数だよ」的な結果になっているということが分かる。
この結果が示すものは明白だ。テッセレーションが3Dゲームで多用されるようになれば,GTX 480,そして,同じアーキテクチャを採用して今後登場してくるだろう,GeForce 400シリーズが圧倒的に有利。一方,現状がそうであるように,テッセレーションを積極的に使うようなタイトルが少ない状況が今後もしばらく続くのであれば,Radeon 8500以来受け継がれるシンプルなテッセレータを実装した,ATI Radeon HD 5000シリーズの“低コスト体質”が優位性を発揮する。
「今すぐテッセレーションが使われるようになる」か,「DirectX 11こそが入り口であり,これから少しずつ使われるようになる」かという,設計思想の違いによるものなので,NVIDIAとAMDのどちらが正しいか,この時点ではなんともいえない。ただ,いずれ結論は出るはずだ。
強化されたアンチエイリアシング周りをチェック
これまた西川善司氏による解説記事に詳しいのだが, GTX 480では,8x MSAA(MSAA:Multi Sample Anti-Aliasing)の高速処理に向けてROPユニットが最適化されたことを受け,8個分のサブピクセル色情報サンプルと,24個の深度情報サンプルを基にAA処理を行う「32x CSAA」(CSAA:Coverage Sample Anti-Aliasing)がサポートされるようになった。
とくに注目したいのが,ACAAのAPIが用意されていないDirectX 9世代のアプリケーションでも,32x CSAAを活用した“ACAAオーバーライド”が実装されたこと。これにより,例えば金網や柵といった,「半透明と,そうでないピクセルが混ざったテクスチャ」を適用したポリゴンに対し,半透明の部分とそうでない部分の境をエッジと見なしたAA処理を,DirectX 9世代のゲームタイトルでも行えるようになる。
では,その効果はいかほどか。下に示したのは,「Left 4 Dead」で,AA処理のサンプル数を変えつつ,柵の描画をクローズアップしたものだ。8x MSAAのみ,ここまでの対応となるHD 5870で撮ったスクリーンショットだが,ほかはすべてGTX 480。こうして見比べてみると,16xQ CSAA以下では,遠景の柵で,柵が“抜けて”しまい,円弧を描いたような描画となるのに対し,32x CSAAではそれがない。ただ,この程度の微妙な差を,ゲーム中に体感できるのかという別の議論はあるので,この結果をどう評価するかは人によりそうだ。
GTX 480 NoAA |
GTX 480 4x MSAA |
HD 5870 8x MSAA |
GTX 480 16xQ CSAA |
GTX 480 32x CSAA |
まず,NVIDIAが強く謳う8x MSAAのパフォーマンスだが,4x MSAA適用時比で86.8%。右に示したのは,NVIDIAによる「8x MSAA適用時に,4x MSAA比でパフォーマンスがどれだけ低下するか」のグラフだが,Left 4 Deadの項目を見る限り,たしかにこのとおりになっていると述べていいだろう。ただ,HD 5870のほうがより優秀だったりするが……。
また,8xピクセルサンプルとなる16xQ CSAAより高いCSAAレベルでは,順当にパフォーマンスが低下していくのも目を引くが,しかし同時に,十分プレイアブルなフレームレートが得られているのも確かだ。
オンラインゲームであれば,プレイアブルなフレームレートの条件がぐっと下がる。それを踏まえるに,今後登場するであろう,GeForce 400シリーズの下位モデルGPUを使って,DirectX 9世代のオンラインゲームをプレイするに当たっては,無料で試せる画質向上手段として,32x CSAAが注目を集めることになるかもしれない。
テクスチャフィルタはどうなった?
AMDが,ATI Radeon HD 5000シリーズの発表に当たって,「パフォーマンスを向上させるために行ってきた,異方性フィルタリングの姑息な最適化を止めた」と宣言したことは記憶に新しい。一方,NVIDIAはテクスチャフィルタリング周りについて,少なくとも公式には何も語っていないが,AMDのこの宣言に対して,NVIDIA側で何かアクションは起こしていないのか。
この点を調べるため,Georg Kolling氏によるテストツール「FilterTest」(Version 1.3)を使って,GTX 480とHD 5870の異方性フィルタリング(以下,AF)品質をチェックすることにした。下に示したのは,筆者私物の「GeForce GTX 280」(以下,GTX 280)搭載カードも含め,4x/8x/16x AFのテスト結果となるスクリーンショットだ。
GTX 480 4x AF |
GTX 480 8x AF |
GTX 480 16x AF |
GTX 280 4x AF |
GTX 280 8x AF |
GTX 280 16x AF |
HD 5870 4x AF |
HD 5870 8x AF |
HD 5870 16x AF |
一見して分かるように,GTX 480とGTX 280との間に違いは感じられない。GeForceでは8x AF以上で星形の歪みが見え,角度依存性を生じさせる最適化処理が依然として行われていることを確認できる。異方性フィルタリング周りに関しては,GeForce 200世代から,まったく変わっていないと見るべきだろう。
頂点シェーダ特性の違いを見る
別途掲載しているレビュー記事で,GTX 480では,GeForce 200シリーズと比べて,頂点シェーダの性能が上がっていることが示されているが,「何が変わったのか」を,もう少し突っ込んで確認できないかどうか,補足的に「3DMark06」(Build 1.2.0)の「Feature Test」に含まれる「Batch Size Test」を実行してみることにした。
Batch Size Testというのは,「DirectXに対してポリゴンの頂点データをまとめて渡すサイズ(=Batch Size)」を変えながら,描画のパフォーマンスを見るテストである。
グラフィックスエンジン側では,DirectXから送られてくる頂点の重なりなどを計算して,最終的に画面に3Dの表示が行われる。このとき,頂点データを一気にエンジン側が受け取れるなら,受け取った頂点データだけを計算すればよくなるので,頂点シェーダ負荷は相対的に下がって,描画効率が上がる。
逆に,少しずつしか渡されなければ,渡されたデータの間で重なりなどを計算する必要が出てくる。そのため,頂点シェーダの計算負荷は相対的に高くなり,描画効率が下がってしまう。つまり,このテストではBatch Sizeが小さいほど頂点シェーダの負荷が高い傾向になるという風に理解してもらえばいい。
それを踏まえたうえでグラフ4を見ると,Batch Sizeが128 TrianglesまではGTX 480のスコアが高い。演算負荷が高い局面だと,GTX 480の頂点シェーダは,HD 5870のそれを上回る可能性が高そうだ。ちなみに,GTX 280も,128 TrianglesまではHD 5870のスコアを上回っているので,これがNVIDIAの頂点シェーダが持つ特性と言えるかもしれない。
話を戻そう。128 Trianglesを超えると頂点シェーダの負荷は低くなり,描画のスループットが試されることになるのだが,ここでGTX 280がスコアの頭打ちを見せるのに対し,GTX 480ではHD 5870にかなり迫るスコアが見られるので,このあたりに,PolyMorph Engine搭載をはじめとするアーキテクチャ改良の意義があるといえそうだ。
GPGPU的な部分はムービーでおさらい
「NVIDIA PhysX」(以下,PhysX)やCUDAアプリケーション,リアルタイムレイトレーシングにおけるパフォーマンス向上も,GTX 480におけるトピックだ。
まずPhysXだが,本技術は“キラータイトルドリブン”ということもあり,今回はデモ「Supersonic Sled」を紹介するに留めたい。
Supersonic Sledは,これまでも何度かムービーを紹介したが,PhysXを用いて,石や破片,埃(ほこり)といったオブジェクトがリアリスティックに動く様子を確認できる。
少なくとも現状,ゲーマーとは関係のないCUDAアプリケーションはパスして,最後はリアルタイムレイトレーシングである。ここは,筆者が実際にGTX 480搭載機で動かしてみたデモをご覧いただきたい。
ぱっと見,たいへん地味だと思うかもしれないが,これは「クルマと周囲の風景などを選択すると,レイトレーシング法(Ray Tracing Algorithm)に基づいて,写実的な3DCGを描いてくれる」というデモだ。
負荷の比較的低いリアルタイムレイトレーシングと,パストレーシング(Pass Tracing,より正確に物体の反射を描画する,負荷の高い技法)を用いたグローバルイルミネーションレンダラーという2種類のレイトレーシングモードを持っている……というのは,カメラを動かすときと止まったときで描画方法が異なるあたりから,なんとなく掴んでもらえるのではないかと思う。
解像度は1024×768ドットが上限だが,これだけフォトリアリスティックなグラフィックスのリアルタイム処理を,想定売価499ドルのGPUがマトモにこなせるというのは,感慨深いものがある。
ただ,NVIDIAによれば,この技術がゲームに下りてくる予定は今のところないとのこと。下りてくるとしても,それは相当先の話になるはずなので,現時点では,「GTX 480にはこの程度のポテンシャルがある」と受け止めておけば十分だろう。
なお,Design Garageデモは,筆者手持ちのGTX 280でも動作はしたが,上で示したムービーの半分程度の速度でしか動作しなかった。
新世代を見せてくれるGPUではある
本稿の序盤で述べたとおり,筆者は今後,テッセレーションが多用されると見ているので,NVIDIAがDirectX 11性能に振った設計を行ったことは歓迎できるのだが,しかし現実問題として,テッセレーションが一般化する頃には,AMDも“次”を投入しているはず。その意味でGTX 480の仕様は先進的過ぎるきらいもあり,こういったNVIDIAの思想に共感できるかどうかというのも,取捨選択のカギになるのではないかと思う。
なお,下はオマケ。きちんとした測定環境で録音したものではないので,あくまで参考程度に捉えてほしいが,Heaven Benchmarkの実行後,ファンの動作音がどう変化していくか,気になる人はチェックしてみてほしい。
@Heaven Benchmark 2.0
GTX 480から約20cmの距離に,マイクを置いて録音してみたものだ。後半になるにつれ,ファン回転数は上がっていくが,最も音が大きくなる局面で,掃除機のような高周波ノイズ成分が多く耳につく。高周波ノイズへの耐性がどれだけあるかで評価は変わってくると思われるが,長時間この音にさらされるのは堪えられないと感じる人はいるだろう
- 関連タイトル:
GeForce GTX 400
- この記事のURL:
Copyright(C)2010 NVIDIA Corporation