9月26日からの3日間、日本最大級のゲーム開発者会議「CEDEC 2007」(CESA DEVELOPERS CONFERENCE 2007)が開催された。
今年は東京大学を会場とし、過去最高の1900名の受講者を記録した。東京ゲームショウとの日程が近かったことから、海外からの来場者や取材も例年よりは多かったようだ。
レポートの第一弾はグラフィックスプロセッサベンダの最大手であるNVIDIAの技術セッショントラックから、興味深かったものを抜粋して紹介する。
3Dゲームにも採用されつつある流体物理シミュレーション
リアルタイム3Dグラフィックスの分野でにわかに実装が開始され、一部には3Dゲームグラフィックスへの実装すら始まりつつあるのが流体物理、流体力学、あるいは流体シミュレーションとよばれる分野だ。
最近ではナムコのアーケード格闘ゲーム「鉄拳6」の水面の動きに対して、プロメテック・ソフトウェアの流体物理シミュレーションが採用されたことが話題にもなった。
今回、NVIDIAはこの分野について、GPUで実行する流体物理シミュレーションの実現方法を「流体力学による煙、炎、水」と題したセッションで紹介した。
今回取りあげたテーマは、タイトルにもあるように煙、炎そして水の3つの流体物理シミュレーション的表現について。
これまで、流体の表現は3Dスプライトで表現したパーティクルシステム、あるいは事前計算して生成したアニメーションテクスチャ(ビデオテクスチャ)などを使用するのが一般的だった。これらは遠目にはリアルだが、動的なシーンでキャラクタや背景が動いた場合に何の影響も及ぼせず、リアリティがない。
とはいえ、リアルタイムで流体物理シミュレーションを行うにはCPUには重荷だ。流体物理シミュレーション自体がゲームの根幹ロジックとなっていれば別だが、CPUの演算コストの大半が流体物理処理に持って行かれてしまっては現実味がない。
ところが、これがDirectX 10世代以降のGPUではやや現実味を帯びてきている、と、登壇したNVIDIA デベロッパ・テクノロジ・エンジニアのChris Kim氏はいう。
DirectX 10世代のGPUは演算性能がとてつもなく高性能であり、とにかく並列処理に優れている。また、ビデオメモリが512MB以上、1GB近い製品も登場してきており、さらには統合型シェーダアーキテクチャの採用で、グラフィックス処理側への影響も少ない。
また、流体物理シミュレーションでは単位立方体「ボクセル」(Voxel)を取り扱うことが多いが、これを処理するのに3Dテクスチャへのレンダリング(ボリュームテクスチャレンダリング)に対応したDirectX 10は都合がよい。