レビュー
» 2006年05月15日 08時00分 公開

きょうはASUS「PhysX P1」で物理演算エンジンの意義を考えた (1/2)

発表が先行したためにその登場が待たれていた物理演算専用エンジン「PhysX」を実装した製品がいよいよ市場に姿をあらわす。その役割と効果を入手したサンプルで検証してみた。

[長浜和也,ITmedia]

よりリアルな動きを可能にする「物理演算専用ユニット」

 最近ゲーム関連のPCパーツでよく聞くのが「物理演算エンジン」の話だ。Quad SLIを採用するデルのXPS RenegadeもAGEIAの物理演算専用エンジン「PhysX」を搭載するし、おなじPhysXエンジンを搭載するBFGの物理演算専用エンジン搭載カード「BFGRPHYSX128P」をユーエーシーが日本市場で取り扱うことを明らかにしたりエルザジャパンがPhysX搭載カードの販売に関する契約をAGEIAと結んだりするなど、ここにきてAGEIAの「PhysX」とその搭載カードが注目を集めている。

 しかし、PhysXの採用を早い段階で表明して日本のユーザーに「ハードウェアによる物理演算専用エンジン」の存在を印象付けたのはなんといってもASUSだろう。そのASUSからPhysXを搭載した製品「PhysX P1」がようやく登場する。PhysX P1はPCIバスインタフェースを採用した拡張カードで、それ自体は完全な演算専用ユニットであるためブラケットにインタフェースを持たない。

 基板にはファンを組み込んだクーラーユニットが搭載されていて、これが演算チップのPhysXとワーク用のメモリである128MバイトのGDDR3メモリを冷却する。AGEIAの資料によるとメモリバス幅は128ビットで動作クロックは733MHz、転送レートは12Gバイト/秒というスペック。PhysXを構成するトランジスタ数は1億2500万個でプロセスルールは0.13マイクロメートルプロセスを採用している。

ASUSのPhysX搭載カード「PhysX P1」はPCIインタフェースを持つ。裏面の状況から基板中央にPhysXチップを載せてそれを囲む4つのGDDR3で128Mバイトのワークエリアを用意していることがうかがえる

 物理演算専用エンジンの役割を簡単にいうと「物体の動きを計算する」ということになる。FPSゲームで考えてみると「プレーヤーが発射した弾丸がどのような軌跡を描いて進んでいくか」「進んだ弾丸は目標のどこに命中するか」「命中したときに弾丸が持っているエネルギーは目標の装甲を貫通するか」「貫通した弾丸は目標のどこまで到達するか」「到達した弾丸が爆発したとき爆風と破壊力はどの部分まで影響するか」「爆発で吹き飛んだ破片はどのような軌跡を描いて飛んでいくか」……という事象をインプリメントされた物理モデルとアルゴリズムにしたがって計算によって求めていくことになる。

 この過程をより精密に処理しようとすると膨大な要素が関わることになる。例えば「飛んでいる弾丸の軌跡」に限って考えても、弾丸が発射された方向や加速度、初速、弾丸の自重、その場の重力は当然として、弾丸が飛んでいる各時点における風速や気温、湿度、気体密度に始まって「その地点における自転速度」なんて要素まで考慮しなければならない(実際に戦艦が主砲を撃つときは「地球自転の速度」まで計算に入れていた)し、先ほどの例の最後で吹き飛んでいった「破片」も飛んでいった先で「弾丸」と同じように命中判定や破片の持っている運動エネルギーから命中した対象に与える影響を計算しなければならない。

 もちろん、従来のゲームタイトルでも「物体の動き」に関する計算は行っている。その計算を実際に行っているのはCPUであったり、最近ではGPU内部で行っていたりする。飛んでいる弾丸とその目標(多くの場合において目標も運動している)の命中判定といった「運動する2つの物体の衝突」といった計算から「風に揺らぐ木の枝」「颯爽と歩く女性のしなやかな髪の動き」などは、いままでもCPUやGPUで処理しており、そのパワーをアピールするデモプログラムも用意されている。

 しかし、これらは「ほかにもやることがあって忙しい」チップに時間を割いてもらって処理をしているのだ。もっとも「物体の運動を計算で求める」という仕事はCPU的であるが、しかし、計算に関わってくる要素が多くなれば、ほかにも仕事があるCPUにすべてをお願いするわけにはいかなくなる。そのため、現状では運動に関する演算をある程度の精度で止めていたりある部分にしか適用していなかったりするのが実情だ。そのために物体の挙動が不自然になることも少なくない。GPUベンダーが物理計算に関わる処理をGPUに肩代わりさせようとしているのも「よりリアルなゲーム」を目指すためにより精密な(そして膨大な)物理計算をGPUで行おうとしているためだ。

 この「よりリアルなゲームのためにより精密な物理演算」の解決策として登場したのが「物理演算専用エンジン」ということになる。

 PhysXが機能するにはソフトウェア側にPhysXを利用するためのファンクションコードが組み込まれていなければならない。現在PhysXに対応したゲームタイトルでは「Tom Clancy's Ghost Recon Advanced Warfighter」や「Gunship Apocalypse」「Unreal Tournament 2007」「Warhammer MMORPG」などが名を連ねている。ASUSのPhysX P1には「Tom Clancy's Ghost Recon Advanced Warfighter」と「Cell Factor」、それから「Switchball」が添付されているので、購入したユーザーはすぐにPhysXの効果を試すことができる。

PhysX P1をシステムに組み込むと当然ながらドライバの導入が必要になる。今回使用したPhysX P1に用意されていたCDからインストールされたドライバのバージョンは
ドライバが導入されるとデモプログラムも一緒にインストールされる。内容は物理演算専用エンジンのメリットがよく分かる「積み重ねたブロックにボールをぶつけて崩す」といった典型的なもの

       1|2 次のページへ

Copyright © ITmedia, Inc. All Rights Reserved.

この記事が気に入ったら
ITmedia PC USER に「いいね!」しよう