GeForce 7900 GTX/GT&GeForce 7600 GT国内発表会で紹介された新作デモの直撮りムービーをUp
NVIDIAは2006年3月14日,都内で「GeForce 7900 GTX」「GeForce 7900 GT」「GeForce 7600 GT」の国内発表会を開催した。グラフィックスチップについての解説は4Gamerですでにお伝えしていた内容を超えるものではなかったが,Quad SLIの概要と,そして新GeForce用に用意されたデモが公開されたことは,触れておく必要があるだろう。
NVIDIA本社のChris Daniel(クリス・ダニエル)氏 |
Quad SLIに関しては改めてお伝えする予定だが,今回の発表会で登壇したNVIDIAのデスクトップ・マーケティング・グループ SLIテクノロジー・プロダクト・マネジャーのChris Daniel(クリス・ダニエル)氏は,「Quad SLIでは,新しいレンダリングモードとして,SFRとAFRをミックスしたものが用意されたほか,32倍のアンチエイリアシング処理が可能になった」と説明する。また,発表会で展示されたMCJとドスパラのQuad SLI対応PCは,いずれも既存のnForce4 SLI X16マザーボードを利用していることが明らかになった。
左:32倍のアンチエイリアシング処理が可能とするスライド 右:発表会で展示されていたMCJのQuad SLI対応PC「MASTERPIECE F8500A-QS」。MSI製のnForce4 SLI X16マザーボード「K8N Diamond Plus」を搭載していた |
|
左:Quad SLIの様子。2枚のカードが1セットになっており,片方のカードがPCI Express x16スロットと接続されている。また,SLIブリッジコネクタは段違い構成。ちなみに,搭載する電源ユニットは定格750W品だった 右:こちらはドスパラのQuad SLI対応PC「Prime A Galleria64 Quad-SLI」。ASUSTeK Computerの「A8N32-SLI Deluxe」と定格680W電源を搭載 |
|
次にデモだが,このデモ自体は,米国サンノゼで開催されたGeForce 7900/7600シリーズの事前説明会で「試作版」として実演されたものとほとんど同じ。そこで,この事前説明会で撮影したムービーを見ながら,いずれ公開されるだろうデモの見どころを紹介していきたい。 ムービーは2点だ。いずれもMPEG-1形式で,一つは「Geo Forms」(6分37秒,72.7MB),もう一つは「Dino Bones」(9分1秒,53.3MB)。リンクをクリックしてダウンロードし,それぞれ一度再生してみてから,以下の文章を読み進めてほしいと思う。
左:デモの解説を行ったのはNVIDIAのデモチームのマネージャであるCurtis Beeson(カーティス・ビーソン)氏。ムービー中の声は彼のものだ。
中央:Geo Formsデモ
右:Dino Bonesデモ
|
|
|
■Geo Forms〜ゲル状物質のシミュレーション 半液体のような物体が音楽に合わせて動くという,地味といえば地味なデモがGeo Formsだ。まだ初期開発版で,これからもう少しデモらしく仕上げていくとのことだが,現時点でも見どころはいくつかある。 一つはこの半液体状の3Dモデルの動きだ。 これは液体のような自在に姿を変える立体物を表現するアルゴリズムとして認知度の高い「MARCHING CUBES」が用いられている。MARCHING CUBESはWilliam E. Lorensen氏とHarvey E. Cline氏がSIGGRAPH’87で発表したアルゴリズム。簡単にいうと「ゲル状物質(便宜上ここではそう呼ぶ)を,複数の細かい立方体がたくさん集まっているものとして考え,これに対してボリュームレンダリングを行っていく」というものだ。
MARCHING CUBES法における1ボクセル以下の形状例。立方体には8個の頂点があるから,2の8乗=256で,256種類の形状規定を行えることになる | 実際の物体の形状は立方体のようにカクカクしていないから,これをどうにかする必要がある。この単位立方体をボクセル(Voxel)と呼ぶが,このアルゴリズムではこのボクセルが持つ8個の頂点を基準に,「表現したい形状がどの頂点をかすめるか」に着目。1ボクセル以下の複雑な形状を規定し,その組み合わせで表現していくのである。
Beeson氏いわく,このデモでは物理シミュレーション的な挙動計算を適用して形状を算出し,MARCHING CUBES法で形状を作成するところまでCPUで行っているとのこと。グラフィックスチップは最終的な描画のみを行っているという。
そして,もう一つの見どころは,そのグラフィックスチップによる描画部分である。 Geo Formsでは,αRGBが16ビット浮動小数点で表現されるFP16バッファベースのハイダイナミックレンジ(HDR)レンダリングが行われている。さらに,これに対してアンチエイリアシング処理が適用されているのだ。 GeForce 7/6シリーズはFP16/FP32バッファに直接アンチエイリアシング処理を適用できない。これは本誌でも「Radeon X1900」のアーキテクチャを解説した記事や「3DMark06」を解説した記事の1回めなどで繰り返し指摘してきたが,Geo Formsでは,HDRアンチエイリアス処理をピクセルシェーダプログラムに実装する形で実現している。
Geo Formsではこれに,カメラの加速度に配慮して前フレームを合成するモーションブラー処理が加えられている。そのとき,強輝度部分についてはしばらく残光現象として「少し遅れて映像から消えていく」処理も加えられ,「目やカメラで見た情景っぽい」作りになっているわけだ。 NVIDIAはこの処理をテンポラル・アンチエイリアシング(Temporal Anti-Aliasing,時間経過的なアンチエイリアシング処理)とカッコつけて(?)呼ぶ。
ちなみに,ATI Technologiesは「フレーム単位でアンチエイリアシング時のサンプル位置を変移させるアンチエイリアシング処理」をテンポラル・アンチエイリアシングと呼んでいるが,あれとはまったくの別物である。
モーションブラー効果をNVIDIAではテンポラル・アンチエイリアシングと呼んでいるようだ。右端は,画面の左側がモーションブラー無効,右が有効時の比較ショット | | |
物体の向こう側に光源があるとき,その光がその物体を浸透して抜けてくる表現。これは擬似的な表面下散乱シミュレーションで実現されている | 向こう側の光が透けて見えたり,浸透した光が再び出てくるような,いわゆる「表面下散乱現象」(Subsurface Scattering)のシミュレーションは,GeForce 7800用のデモ「Luna」に登場した手の大きなモンスター「Fishboys」の技法を,ほぼそのままの形で実装している。表面下散乱を表現したいキャラクターの厚みをレンダリングして求め(視点からと光源からのZバッファの内容の差分から求める),そこから透過光量を概算するという大胆な疑似メソッドだ。
このほか,透明な液状物体のケースではその中身が屈折処理して見えるのに気付くが,これは「透けて何が見えるのか」に相当する皮下情景を最大4断面でテクスチャにレンダリングしておき,表面側の屈折ベクトルを算出してそのテクスチャから皮下情景を取ってくるという形で実現している。「Half-Life 」で,水面下の情景が見えていたが,あれのマルチレイヤー版といったイメージだ。
こういった技法が用いられているため,地味な見た目にかかわらず,負荷は比較的高い。 CPUで処理するボクセルの量は120×120×120個とのことだ。また,1ピクセルあたり約500命令程度のピクセルシェーダプログラムが走り,マルチパスレンダリングのパス数は,なんと1フレームあたり30を超えるという。
■Dino Bones〜HDRレンダリングのインタラクティブショーケース
ここは静止画だと分かりにくいので,ぜひムービーでチェックしてみてほしい。展示コーナーは,石を投げつけると破壊できる | もう一つのDino Bonesは,自然博物館にある恐竜の化石の展示コーナーを再現したデモだ。 GeForce 7900/7600のシェーダーパフォーマンスを活用するために,やや重めのHDRレンダリングパスを実装したものだが,こちらも動き回るキャラクターはない。その代わり,石を投げつけることで展示コーナーを破壊できるという,インタラクティブ性を備えている。このとき,衝突処理や破壊アニメーションはリアルタイム処理される物理シミュレーションによって行われているとのことだ。 Dino Bonesでは2個のHDR光源を設定。主な材質の表現にはカラーテクスチャやバンプマップ用の法線マップ,2レイヤーの反射マップなどを適用している。これは,最近のDirectX 9世代3Dゲームのトレンドに近い構成といえるだろう。
ワイヤーフレーム表示させてみたところ。地味なシーンだがジオメトリ量は多そうだ | シーン内の影のうち,リアルタイム生成されるのは恐竜の化石と崩壊する岩だけ。柱から投射されるやわらかい影はプリレンダーな“焼き込み”シャドウとなっている。 デモムービー中,映像が白飛びしたり,適正輝度に復帰したりするさまは,撮影に用いたビデオカメラの自動露光機能の作用「ではない」。HDRレンダリングを行った結果から平均輝度を算出し,適正輝度に調整してLDRバッファに落とし込む「トーンマッピング」処理をリアルタイムに行っているためである。
左:大理石の床テクスチャもHDRフォーマットのテクスチャを使用。そのため,床に映り込んだ天井の情景もHDRとなっている
中央,右:
眩しすぎる情景からゆっくりと適正輝度に補正される演出はリアルタイム・トーンマッピングによるもの。これもピクセルシェーダプログラムによって1パス使って行われる
|
|
|
シーン中の高輝度部分から溢れ出るレンズフレアは(DirectX 5〜7時代の,旧式のスプライトをそれらしく並べる簡易方法ではなく)高輝度部分からそれらしくあふれて伸びるフィルタをピクセルシェーダプログラムで実装して,リアルタイム画像処理系的に行っている。これはムービー中にBeeson氏が言っているように,川瀬正樹氏の方式によるものだ。
左:柱から伸びるやわらかい影はプリレンダーの影 中央:破壊可能な3Dオブジェクトの影はリアルタイムに生成されている 右:スプライト法ではないレンズフレアでは,このように光源と視線の位置関係によってレンズフレアの虚像も変化。リアリティがある | | |
注目すべき点は,このシーンのテクスチャだ。 これもムービーの中でBeeson氏が言っているが,例えば,シーン内のすべての3Dモデルに512×512テクセル解像度でユニークなテクスチャを貼ろうとすると,4GB以上のグラフィックスメモリが必要になる。当然,これは現実的な話ではない。しかし「テクスチャの使い回し感」がリアルタイム3Dグラフィックスからリアリティを奪う要因となっているのは事実。3Dアドベンチャーゲームなどで,屋敷の壁の煉瓦や洞窟の岩壁のテクスチャがどこに行ってもまったく同じというのに興ざめした経験がある人も多いだろう。
3DMark03のFeature Testに出てきたPixelShader 2.0 Testより
|
この問題への対抗策として考え出されたのが,「プロシージャルテクスチャ」(Procedural Texture)と呼ばれるアイデアだ。これは,ポリゴンに貼り付けるテクスチャ自体をプログラムで生成してしまおうというもの。これをピクセルシェーダで処理すれば,リアルタイムでユニークなテクスチャを生成してはり付けられるようになる。「3DMark03」の「Feature Tests」で,「Pixel Shader 2.0 Test」に用いられていた木目や大理石模様などは,まさにこの類の技術に相当する。 「プロシージャルテクスチャだけで3Dグラフィックスのシーン全体を作り込むにはまだまだグラフィックスチップのパワーが足りない。だが,通常の画像テクスチャと組み合わせたり,画像テクスチャを“タネ”として,シェーダプログラムを通して新たなテクスチャを生成してやるアプローチは,GeForce 7900世代なら十分可能になってきた」とはBeeson氏の弁だ。
デモでは,床の大理石模様に対して,反復的な同心円模様を組み合わせている。この同心円模様こそがプロシージャルテクスチャに相当するのだ。単なる同心円模様だけだと,いかにもチープな自動生成テクスチャという感じだが,下地となっている大理石模様と組み合わされていることで「博物館の床っぽさ」がうまく出ている。 天井の空も同様で,こちらは“タネ”となる空の画像テクスチャをピクセルシェーダプログラムによって変移させることで,雲の模様が刻々と姿を変えるアニメーションを表現している。
左:屋外の空模様がゆっくりと形を変えていく,この雲のアニメーションもプロシージャル
中央,右:床の同心円模様テクスチャはピクセルシェーダプログラムによってリアルタイム生成されたものだ。その証拠に,パラメータを変えることによって同心円の半径を変えたり,太さを変えたり,適用位置をずらしたりできる
|
|
|
これらデモの公開日だが,現時点では残念ながら未定。Beeson氏は「Game Developers Conference 2006の終了後,それほど間をあけないうちに提供したい」と言っていたが,さて。(トライゼット西川善司)
デモといえば,国内発表会でハンビットユビキタスエンターテインメントの樫木史郎氏が,NVIDIAの強力なサポートを受けて開発されたという「グラナド・エスパダ」の動作デモを行った。意外かもしれないが,報道関係者に対して大々的に動作デモを行ってみせたのは,国内ではこれが初めてとのこと
|
|
|
|
|
|