ムービー
GeForce 7900 GTX/GT&GeForce 7600 GT国内発表会で紹介された新作デモの直撮りムービーをUp
次にデモだが,このデモ自体は,米国サンノゼで開催されたGeForce 7900/7600シリーズの事前説明会で「試作版」として実演されたものとほとんど同じ。そこで,この事前説明会で撮影したムービーを見ながら,いずれ公開されるだろうデモの見どころを紹介していきたい。
ムービーは2点だ。いずれもMPEG-1形式で,一つは「Geo Forms」(6分37秒,72.7MB),もう一つは「Dino Bones」(9分1秒,53.3MB)。リンクをクリックしてダウンロードし,それぞれ一度再生してみてから,以下の文章を読み進めてほしいと思う。
■Geo Forms〜ゲル状物質のシミュレーション
半液体のような物体が音楽に合わせて動くという,地味といえば地味なデモがGeo Formsだ。まだ初期開発版で,これからもう少しデモらしく仕上げていくとのことだが,現時点でも見どころはいくつかある。
一つはこの半液体状の3Dモデルの動きだ。
これは液体のような自在に姿を変える立体物を表現するアルゴリズムとして認知度の高い「MARCHING CUBES」が用いられている。MARCHING CUBESはWilliam E. Lorensen氏とHarvey E. Cline氏がSIGGRAPH’87で発表したアルゴリズム。簡単にいうと「ゲル状物質(便宜上ここではそう呼ぶ)を,複数の細かい立方体がたくさん集まっているものとして考え,これに対してボリュームレンダリングを行っていく」というものだ。
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は「フレーム単位でアンチエイリアシング時のサンプル位置を変移させるアンチエイリアシング処理」をテンポラル・アンチエイリアシングと呼んでいるが,あれとはまったくの別物である。
このほか,透明な液状物体のケースではその中身が屈折処理して見えるのに気付くが,これは「透けて何が見えるのか」に相当する皮下情景を最大4断面でテクスチャにレンダリングしておき,表面側の屈折ベクトルを算出してそのテクスチャから皮下情景を取ってくるという形で実現している。「Half-Life 」で,水面下の情景が見えていたが,あれのマルチレイヤー版といったイメージだ。
こういった技法が用いられているため,地味な見た目にかかわらず,負荷は比較的高い。
CPUで処理するボクセルの量は120×120×120個とのことだ。また,1ピクセルあたり約500命令程度のピクセルシェーダプログラムが走り,マルチパスレンダリングのパス数は,なんと1フレームあたり30を超えるという。
■Dino Bones〜HDRレンダリングのインタラクティブショーケース
GeForce 7900/7600のシェーダーパフォーマンスを活用するために,やや重めのHDRレンダリングパスを実装したものだが,こちらも動き回るキャラクターはない。その代わり,石を投げつけることで展示コーナーを破壊できるという,インタラクティブ性を備えている。このとき,衝突処理や破壊アニメーションはリアルタイム処理される物理シミュレーションによって行われているとのことだ。
Dino Bonesでは2個のHDR光源を設定。主な材質の表現にはカラーテクスチャやバンプマップ用の法線マップ,2レイヤーの反射マップなどを適用している。これは,最近のDirectX 9世代3Dゲームのトレンドに近い構成といえるだろう。
デモムービー中,映像が白飛びしたり,適正輝度に復帰したりするさまは,撮影に用いたビデオカメラの自動露光機能の作用「ではない」。HDRレンダリングを行った結果から平均輝度を算出し,適正輝度に調整してLDRバッファに落とし込む「トーンマッピング」処理をリアルタイムに行っているためである。
シーン中の高輝度部分から溢れ出るレンズフレアは(DirectX 5〜7時代の,旧式のスプライトをそれらしく並べる簡易方法ではなく)高輝度部分からそれらしくあふれて伸びるフィルタをピクセルシェーダプログラムで実装して,リアルタイム画像処理系的に行っている。これはムービー中にBeeson氏が言っているように,川瀬正樹氏の方式によるものだ。
注目すべき点は,このシーンのテクスチャだ。
これもムービーの中でBeeson氏が言っているが,例えば,シーン内のすべての3Dモデルに512×512テクセル解像度でユニークなテクスチャを貼ろうとすると,4GB以上のグラフィックスメモリが必要になる。当然,これは現実的な話ではない。しかし「テクスチャの使い回し感」がリアルタイム3Dグラフィックスからリアリティを奪う要因となっているのは事実。3Dアドベンチャーゲームなどで,屋敷の壁の煉瓦や洞窟の岩壁のテクスチャがどこに行ってもまったく同じというのに興ざめした経験がある人も多いだろう。
「プロシージャルテクスチャだけで3Dグラフィックスのシーン全体を作り込むにはまだまだグラフィックスチップのパワーが足りない。だが,通常の画像テクスチャと組み合わせたり,画像テクスチャを“タネ”として,シェーダプログラムを通して新たなテクスチャを生成してやるアプローチは,GeForce 7900世代なら十分可能になってきた」とはBeeson氏の弁だ。
デモでは,床の大理石模様に対して,反復的な同心円模様を組み合わせている。この同心円模様こそがプロシージャルテクスチャに相当するのだ。単なる同心円模様だけだと,いかにもチープな自動生成テクスチャという感じだが,下地となっている大理石模様と組み合わされていることで「博物館の床っぽさ」がうまく出ている。
天井の空も同様で,こちらは“タネ”となる空の画像テクスチャをピクセルシェーダプログラムによって変移させることで,雲の模様が刻々と姿を変えるアニメーションを表現している。
これらデモの公開日だが,現時点では残念ながら未定。Beeson氏は「Game Developers Conference 2006の終了後,それほど間をあけないうちに提供したい」と言っていたが,さて。(トライゼット西川善司)
- 関連タイトル:
GeForce 7900
- 関連タイトル:
GeForce 7600
- この記事のURL:
Copyright(C)2006 NVIDIA Corporation
Copyright(C)2006 NVIDIA Corporation