【特別企画】3DゲームファンのためのGeForce4講座
GeForce4が実現する次世代3Dグラフィックスの世界



 2002年2月6日、NVIDIAはGeForce4ファミリーの発表を行った。GeForce4ファミリーには、いくつか目新しい名前の新テクノロジーが採用されている。ここではその新テクノロジーがどんな効果をもたらすのかについて見ていくことにしたい。なお、GeForce4についての予備知識がすでにある方は、「GeForce4ファミリーのデモで見えてくる将来のゲームの姿」から読み進めていただきたい。
 少々難解な内容も含んでいるが、3Dゲームにおける3Dグラフィックスはこんな感じになっている……というのを少しでも感じてもらえればと思う。そうすれば、今プレイしている3Dゲーム達も違って見えるのではないだろうか。


■ nfiniteFXIIエンジンとは

海藻類は海水の動きに合わせて揺れ、イカは複数の足をムチのようにしならせて泳ぐ
 GeForce3シリーズで初搭載となったプログラマブルなピクセル/頂点シェーダーのアクセラレーション機能を含んだ3DグラフィックエンジンがnfiniteFXエンジンだ。

 初期の3Dグラフィックスシステムでは陰影処理(シェーディング)を頂点単位の演算で行ない、これを算術的な補間をすることで各画素に色を付けていた。これを画素単位でマジメにやろうじゃないか、として開発されたテクノロジーが、初代GeForceファミリー製品「GeForce256」にて実装されたNSR(NVIDIA SHADING RASTERLIZER)だ。

 こうしたアプローチは、ドット単位で陰影処理を行なうことから、パー・ピクセル・シェーディングと呼ばれている。nfiniteFXエンジンは、陰影処理の際の頂点演算処理、実際にドットを書き込む処理をプログラマブルに可変に行なえるようにしようと発展させたものと考えるとわかりやすい。GeForce4TiにはnfiniteFXエンジンのバージョン2となる、nfiniteFXIIエンジンが採用されている。

 今のところ、詳しいエンジン内部の仕様の情報が出てきていないのだが、レンダリングパイプラインの構造が変わっていないようなので、基本構造はGeForce3から大きく変わっていない模様だ。ただし、GPUの動作クロック、メモリクロックは大幅に向上しているため、既存の3Dゲームを動した際には、それなりのパフォーマンスアップは望めると思われる。

nfiniteFXIIエンジンは膨大な量の頂点処理を可能にする イカがはき出す泡はデプススプライトによるもの。簡単にいえば立体スプライト。今後の3Dゲームグラフィックスにおける環境小道具表現に多用されると思われる技術だ 海藻は頂点の固まり。周りに散らばっている四角はデプススプライト


■ デュアルプログラマブル頂点シェーダー実装の真意

上[図a]、下[図b]
デモで使用された狼男の骨格(ボーン)モデル
 頂点シェーダーとは何か。一口に言うと頂点に関する演算処理を行なうもの、ということになる。すると「ただXYZの座標計算を行なうもの?」と思われがちだが、実際の頂点処理とはライティング演算、テクスチャ座標の算出、フォグ座標の生成、ポイントサイズの生成等のことも指す。

 nfiniteFXIIの「II」のネーミングの由来は、「デュアル」プログラマブル頂点シェーダの搭載にあるというのは言い過ぎだとしても、GeForce4Tiシリーズの注目点の1つであることは間違いない。デュアルプログラマブル頂点シェーダはその名の通り、プログラマブル頂点シェーダエンジンをデュアル化(2本化)したもので、処理能力を同クロックで動作するnfiniteFXエンジンよりも2倍に高めたものだ。

 GeForce3のプログラマブル頂点シェーダーは1クロック1命令の実行が可能であったが、GeForce4Tiではこれが1クロックあたり2命令になっている。[図a]はGeForce4Tiのデモソフトに登場する、10万ポリゴン以上で形成された狼男のメッシュ画像、そして[図b]はこの狼男の骨格(ボーン)モデルだ。ちなみにこの狼男のボーンは61個で構成されているという。一般的な動く3Dキャラクターはボーンとそれを覆う表皮(スキン)で構成される。ボーンが動くと、それを覆うキャラクタの外皮の頂点も動く。例えば脚を曲げれば脚を構成している頂点が移動する。

 このときスネとモモの接続されている部分の頂点は通常、頂点計算時の重み係数が設定されていて、この値に応じてスネとモモのそれぞれの頂点を線形補間する「頂点ブレンディング」という座標処理が行なわれる。こうした一連の処理を「スキニング」と呼ぶ。ボーンの制御にはアフィン変換と呼ばれる平行回転行列計算が各頂点に行なわれ、頂点ブレンディングの際には表皮の頂点をボーン空間座標系に変換する計算も行なわれる。

 ちょっと難しい話になってきたが、3Dキャラクタの関節を1つ動かすだけでも、とてつもない量の頂点計算が必要になる……ということはイメージできたと思う。だとしたら、数十のボーンからなる、数10万ポリゴンのキャラクタ全体をリアルタイムに動かすということがどれほど大変かも想像が付くだろう。こうした演算制御をCPUの力を借りずにGPU側で処理するのがプログラマブル頂点シェーダというわけだ。

 プログラマブル頂点シェーダはGPUの中にある頂点演算用のユニットで、プログラマブル頂点シェーダを活用するために実際には「頂点プログラム」というものを用意する。これは最大128命令で構成される小プログラムだ。ちなみに、格闘ゲームなどでは、キャラクタがあるアクションを取ると、頂点が影響を受けるボーン数に応じたバリエーションの頂点プログラムが用意されるようだ。


■ シャドウバッファへの対応は既にGeForce3で実装済み?

長細い耳が頭に、腕の影が足に投影されている。これが新世代3Dゲームにおけるシャドウイングの新基準となるはず
疑似ラジオシティテクノロジーでソフトシャドウを多用するAquaNoxはGeForce3最適化ゲームの1つ
 シャドウマッピングとは光源を視点としてシーンを一度Zバッファレンダリング(視点からの距離を書き込む)して、シャドウマップを作成し、これを用いて影領域かどうかの判定をしながら実際の描画を行なっていく“影”の表現技法だ。ちなみにGeForce3ではこれをハードウェア・アクセラレートが搭載されていた。

 GeForce4では「シャドウバッファへ対応した」といっているが、基本的にはGeForce3のものと変わらないと思われる。シャドウバッファとはシャドウマップを生成するための作業領域だが、ビデオメモリが大量にあるGeForce4Tiではたしかに、現実的にこの機能が活用できるようになるはずだ。

 これからはプレイしている3Dゲームの影に注目してみることをお勧めする。キャラクタの輪郭の形の影が地面に落ちているだけでなく、体の一部の影か自分自身にも写っていればそれは、この機能が使われている可能性が高い。つまり、拳を前に出したときに拳や腕の影が自分の腹に映っていれば……ということだ。もし、輪郭だけだと、ボリュームシャドウや単純にキャラクタの形のテクスチャを半透明合成しているだけの可能性がある。

 GeForce4Tiの発表資料にはソフトフォーカスシャドウにも対応しているとあるが、これが単にプログラマブルシェーダを使ったものなのか、あるいは複数個のシャドウマッピングを半透明で組み合わせたものなのか、あるいは、nfiniteFXIIにて特別にサポートされたものかはわからない。

 ソフトフォーカスシャドウはラジオシティ(相互反射)表現と呼ばれる、レイトレーシングに肉迫した映像を得る手段として注目を集めている。最近のPCゲームではFishtank Interactiveの「AquaNox」がこの表現を適用している。


■ Z補正バンプマッピングは地味だが実は凄い

実際のジオメトリはこのようになっている。赤い部分が水、白い部分が陸地だ。岸の岩肌はバンプマッピングで修飾されたものなのだ
 バンプマッピングは平面のポリゴンに凹凸のあるテクスチャーを貼り付け質感を向上する表現技法だ。

 実際に凹凸のポリゴンを貼り付けるのではなく、ハイトマップと呼ばれる高低差(場合によってはその法線ベクトル)の数値を入れ込んだテクスチャを用意し、レンダリング時にプログラマブルピクセルシェーダを活用してドット単位でその凹凸のライティング演算を行なっていく。つまり、見かけだけが凹凸なだけで実際には平面なので、別の平面と交差したときにはその境界線は直線になってしまう。

 写真はGeForce4Ti用のデモソフトの写真だ。半透明の水面がバンプマッピングを施された岸辺にうち寄せているという一見すると非常に地味な印象なデモだが実は奥が深い。  [写真x]はZ補正バンプマッピングをオフにしたときの画面だ。岸辺は見かけ上、バンプパッピングの効果で凸凹しているが、水面と交差している部分はその凸凹を考慮できておらず、岸辺を構成するポリゴンで水面を切り出したようなビジュアルになってしまっている。これは非常に不自然だ。

 これに対して[写真y]はZ補正バンプマッピングをオンにした例。こちらはバンプマッピングの凹凸までも考慮した形で水面を切り出しているため、非常にリアリティが高い。

 これは地味だが非常に利用価値の高いテクノロジーだ。このデモのように水面の表現に効果を発揮することだろう。例えば、3Dゲームなどでは、水面に浮かぶ船の表現、カーレースゲームなどでは泥地やアスファルトの水たまりの表現、アクションゲームなどでは地面に染み込む体液などの表現もリアルにできそうだ。

 ちなみに、これもnfiniteFXIIエンジンで本当に新規にサポートされたものなのか、ちょっと怪しい。というのも、パフォーマンスはともかく、これもGeForce3のプログラマブル頂点&ピクセルシェーダでも実現できてしまうからだ。

[写真x]
Z補正バンプマッピングを無効にしたとき。水面と岸の境界線は岸の凹凸を無視したものになってしまっている
[写真y]
同じシーンをZ補正バンプマッピングを有効にして描画させたとき。水面から岸の凸部分が顔を出しており非常に正確な浅瀬表現ができている


■ Accuview Antialiasingで1ランク上の3Dグラフィックスを

 Accuview AntialiasingサブシステムはGeForce4TiとGeForce4MXの両方に新しく実装されたテクノロジーだ。

 Accuview Antialiasingは簡単にいえば、画像のジャギーをとって滑らかにする処理を高速に行なうことができる機能のこと。初代GeForce256時代からアンチエリアス機能は備わっていたが、有効にすると映像は美しくなるものの、かなり描画パフォーマンスが低下してしまうため、現実的に活用しているユーザーは少なかった。GeForce3以降、この問題を解決すべくアンチエリアス・エンジンの実現方式を変更、実用的なレベルにまで引き上げている。

 GeForce3から採用されたアンチエリアス・エンジンではカメラの位置を微妙にずらしてレンダリングした複数枚の表示フレームから最終フレームを得る方式を採用していたが(マルチサンプリング方式)、GeForce4ファミリーではこのずらし方のパラメータを変更し画質の向上を実現した。この新しいアンチエリアシング・パターンにはAccuview Shifted Antialiasingという名称が付けられている。

 今回、GeForce4MX440(LEADTEK「WinFast A170DDRT」)をPentiumⅢ+i815EPチップセット搭載マザーボード(GIGABYTE GA-6XOE)にて動作させAccuviewの効果をテストしてみることにした。比較対象としては初代GeForce3(ELSA GLADIAC 920)を用いている。

 残念ながらドライバの不具合のためかGeForce4MX440の2X、Quincunxにおけるアンチエリアスを働かすことができなかったので4Xモードについての比較を行なうことにする。サンプル画面としてはMadonionの3DMark2000のヘリコプターのシーンの映像を用いた。なお、ここで紹介する映像は、比較の際の公平を期するために、実際に動いているものをキャプチャーしたものではなく、あるタイミングのシーンの映像をオフラインでレンダリングさせたものであることをあらかじめお断りしておく。

 [画面a]はアンチエリアスを行なっていない画像、[画面b]はGeForce3の4Xアンチエリアス処理、[画面c]はGeForce4 MXのShifted 4Xアンチエリアス処理の映像だ。解像度は1,024×768、色数は1,677万色だ。ジャギーの補間品質に関しては、細かく見ていくと差は分かるものの、「どちらがいい」という判断は付けがたい。

 ところで、「アンチエリアスとはジャギーを目立たなくするもの」と理解されているが、根本的には「低解像度画面で高解像度画面に近い情報量の画面を表示する」という意味合いがある。[画面d]は同じシーンを1,600×1,200でレンダリングしたものだ。トラックのヘッドライトに着目して欲しい。ちゃんとフロント左右に2つ取り付けられているのが分かるだろうか。

 先ほどの画面a、b、cに立ち戻り、このヘッドライトの情報が正しく再現されているのはどれか確認してみて欲しい。GeForce4 MX440の4XSモードの方が左右のヘッドライトが正しく描画できていることがわかるはずだ。「ジャギー除去の美しさ」というよりは、「情報量の多い画面描画」というところにAccuview Antialasingの神髄があると見た方がいいだろう。

 実際1,024×768以上の解像度だと動いている3Dゲームでジャギーを感じることはまずない。しかし、「遠くのキャラクタの映像がより正しく出力される」というのであれば、その意味でこの機能を有効にする価値はある。

 続いて3DMark2000を用いて、4Xアンチエリアスモードにおけるパフォーマンスの違いを調べてみた。結果は下記の通り。なお、参考としてGeForce2GTS(Aopen 「PA256Deluxe」)の結果も合わせて示しておく。

GeForce2GTS(NO-AA) 5184
GeForce3(NO-AA) 7156
GeForce4MX440(NO-AA) 6451
GeForce2GTS(4X-AA) 2841
GeForce3(4X-AA) 3494
GeForce4MX440(4XS-AA) 2270

 アンチエリアス無しの時は、GeForce4MX440は、GeForce2GTSを上回るが、4Xアンチエリアスモード時には逆転されてしまっている。4XSモードの映像は品質は高いが、パワーも相当喰うということだ。NVIDIAとしてはAccuview Antialasingの機能はGeForce4ファミリーのウリの機能だったわけだが、GeForce4MXシリーズで常用するにはやや辛いという感が否めない。今回のテストではGeForce4Tiについてはテストできなかったので機会があれば、こちらについても調べてみたい。

画面a
アンチエリアス無し
画面b
GeForce3の4Xアンチエリアスモード時の画面
画面c
GeForce4MX440の4XSアンチエリアスモード時の画面
画面d
アンチエリアス無しの1,600×1,200高解像度モード時の画面


■ 異方性フィルタリングってなに?

 テクスチャを貼り付けたポリゴンが視点近くまでやってきたときや遠く離れていったとき、テクスチャ画像はその都度拡大縮小して貼り付けられている。その表示の際、適当に拡大縮小した物をそのまま使うと粗が目立つので、補間して表示しようというアプローチがフィルタリング処理だ。

 バイリニア・フィルタリングは縦横2次元的に補間演算を行なうもの、トライリニア・フィルタリングはバイリニア・フィルタリングにミップマップ補間(視点からの距離に応じてその都度適したテクスチャに置き換える補間方法)を組み合わせたものをいう。異方性フィルタリングはさらにテクスチャの傾きなどを考慮した高度な補間を行なうフィルタリング手法だ。

 Accuview Antialiasingの副次的な機能として、この異方性フィルタリング(Anisotropic Filtering)も現実的なパフォーマンスで利用できるようになることが挙げられる。レースゲーム、一人称シューティング、三人称アクション等、地面や建物がパースを付けて迫ってくるようなゲームソフトでは、その効果的が強く体感できるはずだ。

 [画面a][画面b]を見て欲しい。「MAX PAYNE」の画面だが、画面a、bはそれぞれバイリニア、異方性の各フィルタリング処理を有効にしてキャプチャしたものだ。このシーン、小豆色の看板と煉瓦に注目して欲しい。バイリニアでは看板の真ん中を境界にして手前と遠くのぼやけ方が著しく違うのが分かるだろうか。異方性の方は、こうした境界を感じさせることなく自然にぼけているのが分かるだろう。

 ちなみにトライリニアフィルタリングはミップマップを考慮するため、異方性フィルタリングに近い品質の画面を出せる。ターゲットとなるオブジェクトと視点との位置/角度関係で差が出る場合もあるが、実際のゲームで「異方性フィルタリングの方がいい」と感じる局面はあまりないかもしれない。それにしても異方性フィルタリングが高速に利用できるというのは、GeForce4ファミリーの特徴なのでユーザーは積極的に利用していきたいものだ。

画面a
バイリニアフィルタリング
画面b
異方性フィルタリング
画面c
トライリニアフィルタリング


■ nViewはセカンダリ画面で3Dグラフィックスが出力できるか

実際にGeForce4MX440を使用し、2つの画面を同時に使用してFS2000をプレイしているところ。セカンダリ画面が小さいのは今回使用したGeForce4MX440カードのセカンダリ出力がテレビ出力に限定されていたため
 GeForce2MXでTwinViewと呼ばれるマルチディプレイ機能が提供されたが、その後継テクノロジーがnViewで、これはGeForce4ファミリー全てに搭載される。

 基本的にはWindows環境のデスクトップを広く使ったり、便利に使うという主旨機能だが、ゲームユーザーとして気になるのは、「セカンダリ以降の表示ディスプレイにおいて、3Dグラフィックスのアクセラレーションが利くか?」という点だ。

 かつて、筆者がNVIDIA「GeForce2 MX400」、MATROX「MillenniumG550」、ATI「RADEON 8500」の3枚のビデオカードを用い、「Microsoft Flight Simulater 2000」を動作させ、プライマリ画面にゲームメイン画面、セカンダリ画面にゲームサブ画面を表示したときに正しく表できるかどうかテストしてみたところ以下のような結果が得られている。

 今回、GeForce4 MX440で同様の実験をしてみたところ、問題なし。セカンダリ画面でも正常に3Dグラフィックスの表示が行なえた。複数画面を効果的に使ったゲームは今後GeForce4ファミリーの登場をきっかけに増えるかも知れない。

GeForce2 MX400 ×
Millennium G550 ×
RADEON 8500
GeForce4 MX440


■ GeForce4ファミリーのデモで見えてくる将来のゲームの姿

●CodeCreatures/CodeCult

マルチパスレンダリングのお手本的な画面。水面は半透明。風でゆらゆらと水面が揺れる
空気遠近と逆光表現が美しい
 これまで、多くの3Dゲームは背景の木々、草木は「ビルボード」と呼ばれる技術で描画していた。これは、平面を組み合わせた立て看板状のポリゴンに木の姿を描いたのテクスチャを貼り、常に視点の方に正面を向くように回転表示することで、少量のジオメトリデータだけで、理想的な木々の形を保ちつつそれなりの立体感と存在感をプレーヤーに与えることができるテクニックだ。ビルボードとは、そう、「ビルの看板」を語源にして付けられた技法だ。

 ビルボードの背景はレースゲームなどの半強制スクロール型のゲームではそれなりにごまかせるがオープンフィールドを自由に動き回れる3Dアクションゲームではそうはいかない。木や草木に近づけば途端にニセモノとばれてしまうからだ。

 ところが木々や草木をマジメに表現しようとすると、その頂点数はとてつもない数にものぼる。しかも、風などになびく処理までやろうとすると、全ての木々や草木の動きを処理しなければならなくなるわけで、それこそとんでもない数の頂点を超高速に処理しなければならない。

 GeForceファミリー発表時に公開されたドイツCodeCult社開発中のゲームエンジン「CodeCreatures」を使ったデモンストレーションは、まさにGeForce4Tiのこの部分の処理能力を誇示するものだった。

 CodeCreaturesは現在開発中の3Dゲームエンジンで、特定のゲームや、特定のプラットフォーム用に作成されたものではない、汎用のエンジンを目指して開発が進められているとのこと。「ゲームエンジン」と表現したのはサウンドや物理エンジンなども統括したシステムであるためだ。なお、現時点ではWindows、Macintosh、Xbox、プレイステーション 2、ニンテンドーゲームキューブなどを視野に入れて開発されている。

 特徴的なのは木々や草木、あるいは一部の昆虫や動物までがパラメトリックに自動生成できるところだ。木々や草木等の植物はフラクタル図形などと同様の自己相関関数の組み合わせや、そのパラメータ調整でそれなりのルックスのものが自動生成できることが知られている。CodeCreaturesエンジンは、この技術を応用し、3Dの草木のモデルを自動生成するという。

 デザイナがモデリングしたものや、ライブラリで用意されたものをゲームフィールドに配置しただけでは「いかにもバーチャル」で人工的という感じになる。オープンフィールド系のゲームの場合、自分が今どこにいるのかということを、草木の姿や、その位置関係で把握するのは難しい。ところが、ゲームフィールド状の木々の形が全て違っていれば、現実世界同様に、それが可能となる。

 大変ヘビーな印象を受けるCodeCreaturesエンジンだが、実際には動作させるシステムの性能に応じてモデルのディテールや特殊エフェクトのレベルを適宜変えていく仕組みが採用されているようだ。

 会場ではGeForce4Tiの128MBモデルで動作させ、ここで示したスクリーンショット品質の映像を筆者目視計測でコンスタントに30fps前後は出ていたようだった。ちなみに、このデモを筆者が自宅システムにて強制的にGeForce3/64MBモデルで動作させてみたところ、3~10fps以下しか出なかった(こちらも目視計測)。このエンジンを使用したゲームタイトル、その登場時期については不明瞭な点が多いが、それが多数登場してきた時にはGeForce4Tiの本領が発揮されることだろう。

草一本一本がパラレルに風になびく。頂点シェーダ、フル稼働状態だ 圧倒的な頂点数 こうした木々が自動生成だというのだから驚きだ

時々蝶が舞っているのが見えるがこれもパラメトリックに自動生成できるという 水に落ちた木の枝にとまるトンボ イグアナは動かないがモデリングの精度は近い

●最近話題に上る“ファーシェーディング”とは?

Xbox日本市場における代名詞的ソフトになりつつある「ねずみくす」
 Xbox用ゲームソフト「ねずみくす」で脚光を浴びた毛皮のシェーディング技術「ファーシェーディング」。今回のGeForce4Tiの狼男のデモでも効果的に披露されていた。  この技術には様々なアプローチがあるので一概には言えないが、基本的な考えは意外にもコロンブスの卵的な技術がベースになっている。

 やり方の概念を説明するとこうだ。毛皮を表現するバンプマップを用意し、これを半透明で重ねてレンダリングする。これだけだ。ただし、バンプマッピングの処理はドット単位で陰影処理をするパーピクセルシェーディングで行なわなければならない。毛を長くする場合には重ねるレイヤー層を増やしていけばいい。

 たとえば腕に毛を生やす場合は、腕のポリゴンモデルの周りにもう一回り太いポリゴンの腕を複数層用意し、それぞれに毛を構成するバンプマッピングを半透明で貼り付けるというイメージだ。

 この技術は、見た目に派手なエフェクトなので「プログラマブルピクセルシェーダの力?」と思われがちだが、実はプログラマブル頂点シェーダの方を効果的に活用している。毛皮の生え元の頂点セットアップやバンプマッピングのジオメトリセットアップにプログラマブル頂点シェーダーが活用されているためだ。

 プログラマブル頂点シェーダはDirectX 8.0以降であればCPUエミュレーションが可能なので、実はパーピクセル・バンプマッピングに対応している初代のGeForce256から実現できてしまうのだ。

 とはいえ、現実的にゲームでこの処理をやろうとするとやはりプログラマブル頂点シェーダがハードウェアアクセラレートできて、なおかつマルチテクスチャリングが高速なGeForce3以降が望ましい。特にプログラマブル頂点シェーダがデュアル化されて劇的に高速化されたGeForce4ならば、なおさらこの処理は得意なわけだ。

 なお、GeForce4Tiのデモとして公開された狼男のデモでは、よりリアルに見せるために、透明ポリゴンに、毛髪を描いたテクスチャを貼り付け、これを狼男の体に適当にヒレ状に植え付けて、異方性反射シェーディングを行なって見せている。これはうまいやり方だ。

 異方性反射とは金属の質感を表現する場合にも使われるシェーディングテクニックで、ある方向では光を反射しないが、ある方向には良く光を反射するというもの。ヒレを横から面として見たときにはその毛髪テクスチャが見えるが、上から角度を付けてみたときには光を反射しないようにして透明で見えなくする。ちなみに異方性反射のセットアップもプログラマブル頂点シェーダを活用する。

 密集した毛はファーシェーディングで行ない、長い毛は毛髪テクスチャで見せているというわけだ。今後、登場するゲームで、GeForce3以降では「毛生えあり」、GeForce2GTS以前では「毛生え無し」といった設定オプションを持つのものが増えてくるかも知れない(!?)。

狼男では毛を構成するバンプマップを8層重ねているため、腕の周りに別のジオメトリ層がある さらに髪の毛のヒレを植え込んでいるのでそのジオメトリ層も見える 毛無しの状態の狼男

これが「異方性反射の髪の毛ヒレ」を植え込んだ狼男。異方性反射により、輪郭付近の毛は「毛テクスチャ」として見えているが腕や肩のあたりは「毛テクスチャ」として見えず透明となり、地肌が見えてしまっている 「異方性反射の髪の毛ヒレ」をオフにして、ファーシェーディングの毛だけにした場合。まぁ、これはこれでいいように気もするが こちらが全てをONにした場合。「異方性反射の髪の毛ヒレ」が輪郭付近のモワモワ感をうまく描写できている

●Grace/NVIDIA/Havok

両手からシャボン玉を出して踊るダンサー。シャボン玉はデプススプライト
 ロボットのダンサーが液体(石けん水?)が敷かれた床の上で踊りまくるデモ。このデモはトータルなGeForce4Tiの性能を見せつけるものだが、中でもダンサーが着ているスカートの(布の)シミュレーションに注目したい。

 有名な布の動きのシミュレーションとしては3Dグラフィックス制作ツールのMAYAの「MAYA Cloth」などがあるが、ゲーム中のリアルタイム3Dグラフィックスでこうした布の表現をマジメにやっているものは非常に少ない。今、手近にあるゲームで、キャラクタの着ている服や布に関して注意深く観察してみるといい。殆どのキャラクターが体にびっちりくっついた衣服を身につけているはずだ。このあたりの表現は、日本の格闘ゲームなどの方が積極的に取り組んでいる。

 布は位相幾何学的には単純な平面ではあるが、これが動くとなると細かく平面をポリゴンに分割して、各頂点に置いて高度な物理計算を行なわなければならない。さすがに、スカートを構成する各頂点の挙動は、複雑な物理シミュレーション計算の領域であるためプログラマブル頂点シェーダでは行なえない。このデモでもこれはCPUが担当している。しかし、細かくポリゴン分割されたスカートの、膨大な頂点の計算は、やはり、デュアルプログラマブル頂点シェーダを搭載したGeForce4Tiの方が有利、ということになる。

 NVIDIAは「ジオメトリ計算はGPUに任せて物理計算こそCPUで行なうべき」とGeForceシリーズ発表後、たびたび繰り返し強調しているが、まさにこのデモはその象徴という感じだ。

遠心力と足の動きに翻弄されるスカートの布は複雑な動きを見せる 足を広げればスカートも広がる。当たり前だがその物理演算は単純ではない 一見すると平面の布も実は超多ポリゴンから成り立っている。まさに頂点の固まり。周りにばらついている四角はデプススプライト


■ まとめ~GeForce4ファミリーは「買い」か

 今回、GeForce4ファミリーとして「GeForce4 Ti」、「GeForce4 MX」、「GeForce4 GO」の3タイプの製品が発表されたわけだが、GeForce4 GOはGeForce4 MXのモバイル版なので、結局GeForce4 TiとGeForce4 MXの2タイプが存在することになる。

 既に各方面でいわれているように、ラインナップ的なもアーキテクチャ的にもGeForce4 MXはGeForce2 MXの改良版でしかないため、多くのユーザーはGeForce4 Tiを本命視していると思う。

 さて、そのGeForce4 Tiだが、搭載されている新テクノロジーの傾向や、NVIDIAのプレゼンテーションを見た限りでは、ピクセルシェーダよりも、頂点シェーダの方の重要性の方を一貫して訴えているように思えた。

 頂点処理が速くなると何ができるのか。「これまでよりも高速に複雑な頂点処理ができる」というのが単純に導き出されるメリットだが、現実的には「急激な勢いで多ポリゴン化する現在のキャラクタモデルに対応する」という狙いの方が大きいと思われる。

 最近のゲームソフトではフォトリアリティ(写真品質)を実現するために1キャラクターに使用されるポリゴン数が非常に多くなっている。これは、3Dグラフィックスの表示解像度の標準が1,024×768ドット以上に推移してきて、これに伴って高品位なキャラクタモデルを動かして「見せたい(開発側)」「見たい(プレーヤー側)」というニーズが高まってきたためだ。解像度が低ければポリゴン数が少なくても表示解像度の低さでそれが目立たないが、解像度が高いとそのごまかしが利かなくなるのだ。

 ポリゴン数が多いということは頂点の数が非常に多いということに他ならない。3Dグラフィックスの最も基本的な演算は頂点演算から始まるのでここでもたつくと、すぐに映像の滑らかさに影響してきてしまうのは容易に想像ができるだろう。

 また、飛行機や自動車などを取り扱うゲームはまだしも、多関節で生物的な動きをするキャラクタを多ポリゴンで動かそうとすると、これまたとてつもない量の頂点演算が必要になってくる。本稿後半で出てきた布のシミュレーションもしかりだ。

 GeForce256以降、ハードウェアT&Lの搭載により、頂点演算はCPUではなくGPUの方に任す事が可能になってきているが、現行のGPUの頂点処理能力ではそろそろ限界が見え始めている。頂点処理性能に重きを置いたGeForce4 Tiのデザインはこの動向に対応するためなのだろう。

 今後、すぐにGeForce4Tiの頂点処理能力の機能をフルに活用したゲームソフトが出てくるとは思えないが、それでも現行のソフトの複雑なシーンをフレームレートの変化無しにプレイできるというメリットは体感できるだろう。

 さて、GeForce4MXはGeForce2MXと比べると驚異的に性能が向上しており、「コストパフォーマンス的には無敵」といってもいいのだが、端的に言えば「最高速のGeForce2」でしかない。nfiniteFXエンジンが搭載されていないため、「4」の型番は付いているものの、もはや最新のGeForceとは呼び辛い。となれば、やはりGeForce4MXは、ビジネスユーザー向け、あるいはカジュアルゲーマー向け……ということになるだろう。

 現在GeForce2系以前のビデオカードを使う3Dゲーマーは、そろそろGeForce4 Tiの最下位モデル「GeForce4Ti4200」程度は欲しいところだ。こちらはおそらく25,000円前後で登場すると見られ、早い段階で2万円を割ことが予想される。

 GeForce4ファミリ登場後、GeForce3は併売される予定はないため、流通在庫のGeForce3の価格はこれから下がっていくはず。しかし、価格差が僅差の場合は「GeForce4 Ti4200」を購入した方がデュアルプログラマブル頂点シェーダとAccuivew Antialiasingの分だけお得だろう。

「ねずみくす」
(C) 2002 Microsoft Corporation. All rights reserved.

□NVIDIAのホームページ
http://www.nvidia.com/
□関連情報
【2月6日】NVIDIA、GeForce4ファミリー発表 「GeForce4はXboxをもしのぐ」
http://game.watch.impress.co.jp/docs/20020206/nvidia.htm

(2002年2月12日)

[Reported by トライゼット 西川善司]

I
【Watch記事検索】
最新ニュース
【11月30日】
【11月29日】
【11月28日】
【11月27日】
【11月26日】


ウォッチ編集部内GAME Watch担当 game-watch@impress.co.jp

Copyright (c) 2002 impress corporation All rights reserved.