レビュー : 「GeForce 8800」のアンチエイリアシング&フィルタリング精度検証

GeForce 8800で,アンチエイリアシング&フィルタリング精度は本当に高くなったのか?

EN8800GTX/HTDP/768M

Text by Jo_Kubota
2006年11月24日

 

EN8800GTX/HTDP/768M
メーカー:ASUSTeK Computer
問い合わせ先:ユニティ コーポレーション(販売代理店)
news@unitycorp.co.jp
予想実売価格:8万6000円前後

 2006年11月9日のプレビュー記事でお伝えしたように,「GeForce 8800」シリーズのパフォーマンスにはかなりのポテンシャルを確認できているが,純粋な3D性能とは別に,ゲーマーとして注目したい,大きなトピックがある。それは,「GeForceの父」David Kirk氏が強調した,描画周りの強化だ。
 その概要は連載「西川善司の3Dゲームエクスタシー」の「『GeForce 8800』のポイントをブロックダイアグラムから探る」で紹介しているが,GeForce 8800では,Coverage Sampled Antialiasing(以下CSAA)という新たなアンチエイリアシング技法,そして,より精度の高められた異方性フィルタリング技法が採用されているという。

 

 そこで,今回はこのCSAAと異方性フィルタリングについて検証していきたいと思うが,それに先立って,少しばかりアンチエイリアシングの話をしておきたい。
 3Dゲームにおけるオブジェクトは,ピクセル単位で描画されるため,どうしても輪郭には階段状のギザギザが生まれてしまう。このギザギザを「ジャギー」というが,アンチエイリアシングとは,このジャギーを滑らかに補整して,目立たなくする技術のこと。ゲームによっては「FSAA」(Full Screen Antialiasing)と呼ぶこともあるが,これは「ゲーム画面全体にアンチエイリアシングを適用する」ことから使われている表現で,本稿で述べるアンチエイリアシングとほぼ同じ意味と考えて差し支えない。

 

アンチエイリアシングの概念(出典:NVIDIA)

 このように,3Dゲームにおけるアンチエイリアシングは,ジャギーを滑らかにして,3D世界の不自然さを解消するもの(厳密には正しくないが,ここではこの理解でいい)だが,いいことばかりではない。アンチエイリアシングでは,最終的に描画される画像を構成する「ピクセル」よりも小さい単位「サブピクセル」を用意して,それをレンダリングすることで,ピクセル単位で描画していたときよりも細かな階調表現を得るため,描画負荷は確実に高くなる。
 現在主流となっているMulti Sample Antialiasing(以下MSAA)というアンチエイリアシング技法では,もとになる画像の輪郭に対して,2xだったり4x,あるいは6x,8x……というサンプル数に応じて,サブピクセルを用意することになる。そのため,サブピクセルの数が増えれば,グラフィックスメモリの消費量は多くなるのだ。メモリクロックが低かったり,メモリバス幅が狭かったりするミドルレンジ以下のグラフィックスカードで,アンチエイリアシングを適用するとパフォーマンスが大きく低下するのは,これが理由である。

 

 この問題に対する“回答”として用意されたのが,CSAAだ。CSAAでは,サブピクセルのデータを圧縮してグラフィックスメモリに置くことで,従来と同等のアンチエイリアシング品質を,より低負荷で処理できると謳われている。NVIDIAの発表によれば,4x AA(4xアンチエイリアシング)程度のグラフィックスメモリ消費量で16x AAのアンチエイリアシング効果を実現。8x AA相当のグラフィックスメモリを消費すれば,さらに高品位な16xQ CSAA(QはQualityの意)を実現できるという。
 GeForce 8800はもちろん,将来的に登場するだろうミドルレンジクラスのGPUにおけるアンチエイリアシングにおいて,非常に意味のある技術のように見える。

 

 

CSAAを利用するには?
CSAAにまつわる“お約束”を理解する

 

 理由は分からないが,NVIDIAはCSAAについて,公にはあまり突っ込んだ解説を行っていない。そのせいもあってか,世界中の報道関係者から「どうなってるの?」という質問が来ているようで,「How to enable CSAA」というドキュメントを,別途用意していたりする。よって今回は,このドキュメントと,4Gamerが独自に取材した内容をもとに,CSAAの有効化方法や制限をまとめ,同時にその効果をテストしてみたいと思う。

 

 というわけで,最初に,CSAA有効化の方法を確認してみよう。手順は以下のとおりだ。

 

GeForce 8800におけるCSAA有効化方法
(1) NVIDIAコントロールパネルから,「3D設定」の「3D設定の管理」(Manage 3D settings)を開く。
(2) 「プログラム設定」(Program Settings)から,CSAAを適用したいタイトルを探し,「アンチエイリアシングモード」(Antialiasing - Mode)を「拡張されたアプリケーション設定」(Enhance the application setting)に変更する
(3) プログラム設定にタイトルが見つからない場合は,「グローバル設定」(Global Settings)から,(2)と同じように設定する
(4) (2)(3)いずれの場合も,続いて「アンチエイリアシング設定」(Antialiasing - Setting)で「8x」「16x」「16xQ」のいずれかを選択する
(5) ゲームを起動して,描画オプションから,アンチエイリアシング設定を「2x」もしくは「4x」に指定する(※どちらでもいい)
左:プログラム設定,もしくはグローバル設定で拡張(Enhance)を選択し,8x/16x/16xQを指定する
右:「Half-Life 2: Episode One」の設定画面から。2xもしくは4xのアンチエイリアシング設定を選択する
(※いずれもサムネイルをクリックすると拡大表示します)

 

 誤解しやすいポイントを説明しておくと,まず,下に示した表1のとおり,CSAAが適用されるのは8x/16x/16xQのときだけで,それ以外では――手動でSSAA(Super Sampling Antialiasing)を適用しない限り――自動的にMSAAとなる。同時に,8x/16x/16xQ AAは,CSAA以外では実現できない。

 

 

 また,上で示したとおりに設定しておけば問題はないはずだが,プログラム設定とグローバル設定の両設定では前者が優先されるため,グローバル設定だけしか設定していない場合,CSAAが有効化されないことがある。このとき,8x/16x/16xQ CSAA設定が無効になって8xQ MSAAになったり,あるいはアンチエイリアシング設定が有効にならなかったりするので,注意しておきたい。
 確実を期すなら,プログラム設定とグローバル設定の両方を同じにしておくのがお勧めだ。

 

 もう一つ,上の(2)(3)で示した「アンチエイリアシングモード」には「アプリケーション設定の変更」(Override any application setting)という項目があるが,これについては後述する。

 

EN8800GTX/HTDP/768Mの付属CD-ROM

 以上,レビューを謳いつつも基礎解説が長くなったが,ここからは評価に入っていきたい。
 今回はASUSTeK Computer製のGeForce 8800 GTX搭載グラフィックスカード「EN8800GTX/HTDP/768M」を用意。リファレンスカードと同一に見えるデザインを採用しており,「Tom Clancy’s Ghost Recon: Advanced Warfighter」「GTI Racing」と,ベンチマークソフト「3DMark06 Advanced Edition」をバンドルするのが特徴だ。

 

 このほかテスト環境は表2にまとめたとおり。2006年11月20日時点の公式最新版「ForceWare 97.02」はGeForce 8800以外をサポートしていないため,ドライバ環境が若干特殊なのはご容赦を。
 また,今回はCSAAの有用性を見るため,4Gamerのベンチマークレギュレーションには準拠していない。本稿独特の設定については,適宜述べていくつもりだ。なお以後,とくに断りのない限り,カード名ではなくGPU名で製品を表記する。

 

 

 まず,CSAA 8x/16x/16xQのパフォーマンスが,NVIDIAの主張どおりかどうかをチェックしてみよう。
 「3DMark06 Build 1.0.2」(以下3DMark06)と「3DMark05 Buiild 1.2.0」,それぞれの標準解像度において,異方性フィルタリングを無効にした状態で,4x MSAA〜16xQ CSAAのスコアをまとめたのがグラフ1だ。Game Testsの詳細は別途グラフ2にまとめたので参考にしてもらえればと思うが,確かに,アンチエイリアシングのサンプル数が2倍,あるいは4倍になったとは思えないスコアである。

 

 

 実際のゲームタイトルにおいても確認してみよう。基本的にはベンチマークレギュレーション2.1準拠で,アンチエイリアシング&異方性フィルタリング設定は両3DMarkのテストに準じ,「Quake 4」(Version 1.2)のテストを行った結果がグラフ3だ。3DMark06と同じく,8x/16x CSAAのスコアがほぼ並んだ状態で,いずれも8xQ MSAAのスコアを大きく上回っているあたりは,CSAAの効果といえそうである。

 

 

 Quake 4と同条件で「F.E.A.R.」(Version 1.08)のテストを行った結果をまとめたのがグラフ4だが,これもQuake 4と同じ傾向だ。ここでも8x/16x CSAAのグラフが8xQ MSAAを大きく上回っており,効果を見て取れる。

 

 

 最後に「Half-Life 2: Episode One」(グラフ5)だが,ここでは8x/16x CSAAのスコアが8xQ MSAAを下回っている。その理由について断言はできないが,ドライバレベルの問題である可能性を指摘できよう。ForceWare 97.02では,まだCSAAのパフォーマンスに関して100%の信頼は与えられない,くらいに理解しておくのがよさそうである。

 

 

 

画質面のメリットは見えにくいCSAA
かろうじて16xQ CSAAには若干の意義が

 

 平均フレームレートでは,一部の例外を除いて,16x CSAAや8x CSAAが4x MSAAに迫るレベルだと分かったが,肝心要の品質はどうだろうか。
 そこで今回は,3DMark06のHDR2テスト「Deep Freeze」で,アンチエイリアシング品質をチェックしてみることにした。

 

 パフォーマンス検証時と同じく異方性フィルタリングを無効にしてから,画面解像度を800×600ドットに設定し,アンチエイリアシング設定ごとに1200フレームめをキャプチャした結果を下にまとめた。いずれも,画面の一部を拡大したもの(※クリックすると全体を表示します)だが,建物の上に見える電線,そして建物の窓に注目すると,8xQ MSAAの品質が一段上。16xQ CSAAにそれが続く一方,8x CSAAと16x CSAAは,一長一短ありつつも,いずれにせよ4x MSAAと比べて輪郭が潰れがちだ。

 

 同じ条件でRadeon X1950 XTXと比較してみると,やはりCSAAを適用したときの画面は全体的に柔らかすぎて,画像が潰れがちなのは気になった。また,オブジェクト一つ一つの輪郭,とくに電線の自然さに目を向けてみると,8x CSAAと16x CSAAは,不自然な印象がぬぐえない。

 

GeForce 8800 GTX(No AA) GeForce 8800 GTX(4x MSAA) GeForce 8800 GTX(8x CSAA)

 

GeForce 8800 GTX(8xQ MSAA) GeForce 8800 GTX(16x CSAA) GeForce 8800 GTX(16xQ CSAA)

 

Radeon X1950 XTX(No AA) Radeon X1950 XTX(4x AA) Radeon X1950 XTX(6x AA)

 

 今回のテストで唯一,CSAAのスコアが相対的に低かったHalf-Life 2: Episode Oneでも,念のため画面を撮ってみた(※クリックすると全体を表示します)。こちらはどうしてもキャラクターに動きがあるので,100%同じカットにはならないが,ざっと見てみてほしい。画像手前に見えるメーターの針に注目すると,やはり3DMark06(のDeep Freeze)と同じような結果になっているのが分かるだろう。

 

GeForce 8800 GTX(No AA) GeForce 8800 GTX(4x MSAA) GeForce 8800 GTX(8x CSAA)

 

GeForce 8800 GTX(8xQ MSAA) GeForce 8800 GTX(16x CSAA) GeForce 8800 GTX(16xQ CSAA)

 

Radeon X1950 XTX(No AA) Radeon X1950 XTX(4x AA) Radeon X1950 XTX(6x AA)

 

 ところで,先ほど述べたとおり,「アンチエイリアシングモード」(Antialiasing - Mode)には,「アプリケーション設定の変更」(Override any application setting)という項目がある。
 これは何なのかというと,NVIDIAいわく「アンチエイリアシング設定を持たないゲームでCSAAを有効にするための項目」。MMORPGなどでは,ゲーム側にアンチエイリアシング設定のないものが少なくないが,こういったゲームにおいて,強制的にアンチエイリアシング設定を有効にするためのものというわけだ。

 

 そこで,アンチエイリアシング設定を持たないMMORPGから,「シールオンライン」を用意し,有効になるかをチェックしてみた。
 結果は下にまとめたとおり(※クリックすると全体を表示します)だが,順に説明しよう。左は,NVIDIAコントロールパネルから「拡張されたアプリケーション設定」(Enhance the application setting)を選択した結果。アンチエイリアシングはまったく有効になっていない。
 中央と右は,「アプリケーション設定の変更」(Override any application setting)に設定し,それぞれ4x MSAAと16xQ CSAAに設定をした結果だ。確かに,アンチエイリアシングは有効になっている。4x MSAAと16x CSAAの間に違いはあまりないものの,ギザギザしたジャギーが低減されている(=確かにCSAAが効いている)ことは間違いない。

 

GeForce 8800 GTX(拡張されたアプリケーション設定,4x MSAA) GeForce 8800 GTX(アプリケーション設定の変更,4x MSAA) GeForce 8800 GTX(アプリケーション設定の変更,16xQ CSAA)

 

 ただし,「そもそもアンチエイリアシングが有効にならないゲームでも,アンチエイリアシングがかかるようになる」わけではない。アンチエイリアシングが有効にならないタイトルとして,「FINAL FANTASY XI Official Benchmark 3」を用意してテストしてみた結果を下にまとめたが,結果は見てのとおりである。

 

GeForce 8800 GTX(拡張されたアプリケーション設定,アンチエイリアシング無効) GeForce 8800 GTX(アプリケーション設定の変更,4x MSAA) GeForce 8800 GTX(アプリケーション設定の変更,16xQ CSAA)

 

 

非常に優れた異方性フィルタリング精度
前世代とは確実に一線を画する

 

 アンチエイリアシングについての分析に続いて,異方性フィルタリングについてもチェックしてみる。
 異方性フィルタリングは,アンチエイリアシングとセットで語られることの多い技術だが,完全に別物。詳細は前述した連載のバックナンバー「『テクスチャの異方性フィルタリング』ってなに?」に詳しいが,誤解を恐れずに一言でまとめるなら,ポリゴンにテクスチャをキレイに貼るのが異方性フィルタリングの役割だ。2x〜16xまで,数字を大きくするほど,精度はより高くなる。

 

 さて,各GPUの異方性フィルタリングについて,3DMark06の「Filtering & AntiAliasing Tool」を使用して比較してみよう。
 アンチエイリアシング設定は,同ツールから設定できる最大値に固定(ドライバからは設定しない)。ポリゴンのサイズに合わせてテクスチャのサイズを補整するミップマップ(MIPMAP,Multum In Parvo Mapping)関連では,「MipMap Coloring」を「On」,「Magnification Filter」を「Linear」,「Minification Filter」を「Anisotropic」,「MipMapping」を「Linear」とした。これで「トライリニア型」と呼ばれる,最も高品質な設定となる異方性フィルタリングが有効化される。
 この状態で「Anisotropy Level」(異方性フィルタリングの精度)を1x/2x/4x/8x/16xの5段階に切り替えて,スクリーンショットを取得する。

 

 図形の見方だが,黒い枠線で描かれているのは「建物内にある通路」だと思ってほしい。この“通路”に対してトライリニア型異方性フィルタリングを適用した結果を分かりやすく色分けして見せたのが下のテスト結果だが,このとき,奥から同心円状に色が切り替わって広がっていくのが理想だ。また,グラデーションが滑らかであればあるほど,精度が高く,違和感の少ないフィルタリングが行えているということになる。一方,角度によってギザギザが生じて,花びらのようになっている場合は,精度的に「手抜き」をして,パフォーマンスを上げる試みがなされていることを示す。
 今回は,これを踏まえて比較してみるわけだが,一つのGPUごとに,角度は0度と45度の2パターンを用意。異方性フィルタリングレベル1x/2x/4x/8x/16xの順で,5個ずつ画面を用意している。この関係でサムネイルは小さくなっているので,ぜひそれぞれ拡大して比べてみてほしい。
 テスト結果は,極めて明快だ。GeForce 8800 GTXは16xでも破綻が少なく,非常に優秀である。GeForce 7950 GX2とRadeon X1950 XTXのいずれも,GeForce 8800 GTXには遠く及ばない。

 

GeForce 8800 GTX:角度0度

 

GeForce 7950 GX2:アンチエイリアシングレベル4(最高設定),角度0度

 

Radeon X1950 XTX:アンチエイリアシングレベル4(最高設定),角度0度

 

GeForce 8800 GTX:アンチエイリアシングレベル8(最高設定),角度45度

 

GeForce 7950 GX2:アンチエイリアシングレベル4(最高設定),角度45度

 

Radeon X1950 XTX:アンチエイリアシングレベル4(最高設定),角度45度

 

 

CSAAはベンチマークテスト向け?
異方性フィルタリングの品質は文句なし

 

 まとめてみよう。CSAAに関していうと,とくに8x CSAAと16x CSAAのパフォーマンスには目を見張るものがある。「4xアンチエイリアシング相当のグラフィックスメモリ負荷」というNVIDIAの言い分に,異を唱える必要はなさそうだ。Half-Life 2: Episode Oneでは,8x CSAAが8xQ MSAAよりスコアが低くなってしまっているが,今回テストに用いたForceWare 97.02がGeForce 8800 GTX専用で,かなりβ版気味なことを考えれば,目くじらを立てるほどでもないのではなかろうか。このあたりは,ForceWareのバージョンアップによって,次第に修正されていくものと思われる。

 

 ただ,画質面でメリットがあるのかというと,少々微妙なのも確か。アンチエイリアシングの品質は8xQ MSAAが最も高かったことを考えると,16x CSAAや16xQ CSAAの効果については,首をかしげざるを得ない。さらにいえば,8x CSAAの品質は4x MSAA以下であり,そもそも選択する理由を見いだせない。ForceWare 97.02でテストする限り,CSAAに画質面のメリットはほとんどないのだ。
 NVIDIAが何を狙ってCSAAを導入したのかまでは分からないが,現時点においては,「1GPUで16x AAを実現」「8x AAをより高いパフォーマンスで実現」と謳うためだけの存在と言われても,仕方のないデキである。同時にエンドユーザーからすると,CSAAの品質に対して過度な期待は禁物。アンチエイリアシング品質を期待するなら,4x MSAA(や,ゲームによっては8xQ MSAA)を利用すべきだ。

 

 一方,異方性フィルタリングの精度に関しては,素直に評価してよさそうである。異方性フィルタリングの負荷が相対的に低くなったため,手抜きをする必要がなくなったのだろうが,実際,GeForce 8800では,常に16x設定にしてしまって問題ない。テクスチャの“つなぎ目”が気になっていた人にとって,GeForce 8800は現時点で最良の回答になってくれるだろう。

 

タイトル GeForce 8800
開発元 NVIDIA 発売元 NVIDIA
発売日 2006/11/09 価格 製品による
 
動作環境 N/A

Copyright(C)2006 NVIDIA Corporation