多和田新也のニューアイテム診断室

新表現を生み出す物理演算プロセッサ「PhysX P1」




 すでに店頭でも販売が開始され、話題になっている物理演算処理プロセッサ「PhysX」。3Dゲームをよりリアルに表現する物理演算処理を専任する役割を持っているが、実際どのような影響を及ぼすのか。その効果のほどを見てみたい。

●3Dグラフィックの新たなチャレンジとなる物理シミュレート

 ビデオカードの性能向上もあって、3Dグラフィックの表現力はかなりあがってきた。最近の話題でいえば、HDR(High Dynamic Range)レンダリングが現実的に可能になったことで、その場の空気感のようなものも表現できるようになってきている。そして、そのリアリティをさらに高めるためにクローズアップされているのが物理演算である。

 物理演算とは、物体の衝突などに伴う物体同士の運動を表現するものだ。例えば、3Dゲーム中に石ころが落ちていたとすると、キャラクターが石にぶつかったときの転がり方や、さらに転がった先で別の物体とぶつかったときに発生する運動など、一連の動きを表現するのである。

 従来の3Dゲームなどでも、一部のオブジェクトに対して、こうした物理演算処理を加えていることはあった。だが、CPUやGPUなど物理演算以外の処理をメインに行なっている演算ユニットを利用しての処理になるため、物理演算に割けるリソースは限られ、結果、リアリティの高い物理表現は難しいのが現状である。

 そこで生み出されたのが、AGEIAの「PhysXプロセッサ」である。PhysXは物理演算を簡単なプロセスで実現できるようにしたエンジンで、それをハードウェア処理するためのものがPhysXプロセッサ(PPU:Physics Processing Unit)である。そして、このプロセッサを搭載したボードが、すでに発売が開始されているBFGの「BFGRPHYSX128P」と、今回試用するASUSTeKの「PhysX P1」なのである。

 そのPhysX P1のボードは、まるでビデオカードのような外観となっている(写真1)。プロセッサのコアクロックは公表されていないが、その処理能力は最大で毎秒200億命令。凸状物体同士の衝突で1秒間に最大53万3千回、球体同士の衝突であれば1秒間に5億3千万回を処理できるとされている。また、搭載されているローカルメモリは128MBで、128bit幅で接続され、733MHzで動作している。

 このPhysX P1は、ボード末端部にペリフェラル用の電源コネクタを備えているのも特徴といえる(写真2)。果たして、その消費電力はいかほどか、とワットチェッカーを使って計測してみた結果がグラフ1である。テストした環境は後述する表1と同じ環境(CPUはPentium D 820を使用)で、PhysX P1を装着した場合と、装着していないときで、それぞれ計測している。

【写真1】PhysXプロセッサを搭載するASUSTeKの「PhysX P1」。ビデオカードに酷似した外観だが、ブラケット部の入出力端子は持たない 【写真2】カード末端部にはペリフェラル用の電源コネクタを搭載する

 ピーク時の数値にはビデオカードなどの負荷増による消費電力の向上も含まれるが、PhysX P1なし時の結果から、ビデオカードによる増加はおよそ70W強であると判断できる。その点も踏まえると、おおよそではあるが、PhysX P1の電力消費は15~20W程度と考えてよさそうである。

【グラフ1】PhysX P1装着時の消費電力

 ちなみに、今回の試用機に付属してきたCD-ROMには、ドライババージョン「2.4.2」の正式版が収録されていた。このバージョンはすでにAGEIAのWebサイトからもダウンロードできるが、ベータ版として「2.4.3」も提供されている。今回のテストは、このベータ版ドライバを用いて行なっている(画面1、2)。

【画面1】PhysX P1のドライバ設定画面。今回導入したのはバージョン2.4.3のベータ版である 【画面2】デバイスマネージャ上ではほかのジャンルとは異なる、独立したジャンルとして認識されている

●フレームレートの向上はアプリケーション次第

 さて、3Dグラフィックに絡んだハードウェアを導入する目的といえば、その最も大きなものはフレームレートの向上といえる。そこで、まずはPhysX P1導入による、フレームレートの変化という点に着目してみたい。テストに用意した環境は表1のとおりだ。

【表】テスト環境
CPU Pentium D 820/Celeron D 340
マザーボード Intel D945GTP(Intel 945G Express)
メモリ PC2-4200 DDR SDRAM 512MB×2
ビデオカード NVIDIA GeForce 7900 GT(ForceWare 84.21)
HDD HGST Deskstar T7K250(HDT722525DLA380)
OS Windows XP Professional(ServicePack 2/DirectX 9.0c)

 1つ目のテストは、3DMark06のCPU Testである(グラフ2)。デュアルコアのPentium D 820(2.8GHz動作)と、シングルコアのCeleron D 340(2.93GHz)という2つのCPUを用意してテストを行なっている。

 3DMark06のCPUテストにはPhysXのライブラリを用いた物理演算処理が加えられているが、ハードウェアアクセラレーションに対応しているとは表明されていない。Celeron D 340という3Dゲームには不向きなCPUを使っている場合でもPhysXプロセッサの有無でフレームレートが変わっていないので、一見PhysXのハードウェアアクセラレーションが動いていないように感じられる。だが、Pentium D 820の方では、誤差が極めて少ないこのCPUテストにおいて十分すぎるほどのスコアの差が発生している。

 ということは、PhysXプロセッサによるハードウェアアクセラレーションは行なわれていると判断したい。とは言っても、負荷の軽いテスト1ではPhysXプロセッサがあった方がスコアが良いものの、負荷が軽いテスト2ではない方がスコアが良くなっており、PhysXプロセッサのフレームレート向上を確実に確認できる結果とはいえない。

【グラフ2】3DMark06 CPU Testの結果

 もう1つ、PhysXプロセッサのドライバに含まれる、「Boxes Demo」と名付けられたデモのフレームレートを測定してみたい。Boxes Demoは、ピラミッド状に詰まれたブロックにボールをぶつけたときの動きを表現するもの(画面3、4)。

 ここではFRAPSによる計測を行なっているが、手動で計測開始を指示することになるため平均フレームレートに誤差が生じる。そこで、ボールをぶつける前に計測を開始し、最もブロックの動きが激しくなる最低フレームレートを抜き出してグラフに示した(グラフ3)。テストにはPentium D 820を使用しているが、PhysXプロセッサの有無により2倍近いスコア差が生じている。3DMark06のCPUテストに比べると、物理演算自体の負荷が高いと思われるが、こうした描画内容であればPhysXプロセッサの有無による効果は大きいといえる。

 ちなみに、後述する対応アプリケーションの対応状況を見てみると、“PhysXプロセッサがある場合のみ起動できる”と、“PhysXプロセッサの有無で描画内容を変える”という2つのパターンがある。だが、Boxes Demoは“PhysXプロセッサがない場合はCPUで処理する”という別のパターンである(しかも効果を示すためのデモプログラムである)。

 つまり、PhysXプロセッサに対応し、かつPhysXプロセッサがない場合でも同等の描画内容をCPUで処理させるアプリケーションであれば、フレームレートの向上効果が期待できるといえるだろう。

【グラフ3】PhysX Boxes Demo実行時の最低フレームレート

【画面3】PhysXプロセッサのドライバに含まれるBoxes Demoでは、ピラミッド上に詰まれたブロックにボールをぶつけて崩すデモが見られる 【画面4】PhysXプロセッサを搭載せずに実行すると、Software Mode、つまり同じ物理演算処理をCPUで行なうことになる
【動画1】PhysXプロセッサのドライバに含まれるBoxes Demo(約4.5MB)
※FRAPSを用いてキャプチャしたため、以下の動画は30fps固定となっている

●物理演算の魅力は表現力の向上

 さて、冒頭でも述べたとおり、物理演算を多用することによって3Dグラフィックの表現は向上する。その具体例をここで紹介したい。今回試用しているASUSTeKの「PhysX P1」には、3つのサンプルゲームが付属しており、それらを中心に紹介していこう。

 最初に紹介するのは、「Tom Clancy's Ghost Recon Advanced Warfighter」である。このゲームでは、PhysXプロセッサの有無を判断して、PhysXプロセッサがある場合のみ、PhysXエンジンを用いた専用の描画を行なうようになっている。PhysXプロセッサがない場合とは描画が異なるだけで、プレイにおいてPhysXプロセッサは必須ではない。

 PhysXプロセッサを有効にした場合と、しない場合とで、画面5~10にキャプチャした静止画を掲載している。静止画では効果が分かりやすい場面をピックアップしているが、PhysXエンジンを用いた場合では被弾した路面や車、木の破片がより多く描かれていることが分かる。

【画面5/6】Tom Clancy's Ghost Recon Advanced Warfighterのワンシーンより。左がPhysXあり、右がPhysXなしの描画で、路面を銃を撃ったときに飛び散る破片の量が大きく異なる
【画面7/8】Tom Clancy's Ghost Recon Advanced Warfighterより。左がPhysXあり、右がPhysXなし。手榴弾を使って自動車を爆発させたシーンだが、この破片の量も一目で分かる違いがある
【画面9/10】Tom Clancy's Ghost Recon Advanced Warfighterより。左がPhysXあり、右がPhysXなし。静止画では分かりづらいのでぜひ動画をご覧いただきたいが、木を銃撃したときの樹皮の落ち方も異なっている
【動画2】Tom Clancy's Ghost Recon Advanced Warfighterのプレイ動画。PhysXを利用している場合(約15MB) 【動画3】Tom Clancy's Ghost Recon Advanced Warfighterのプレイ動画。こちらはPhysX P1を取り外してプレイしている(約16.6MB)

 次のサンプルゲームは「CellFactor」だ。このアプリケーションはPhysXプロセッサがないとエラーが発生して起動できない、PhysX必須アプリケーションである。設定画面中にPhysXプロセッサの有効化に関する項目があるものの、グレーアウトして選択できないようになっている(画面11)。

 このCellFactorのプレイ中にキャプチャーした画像も掲載している(画面12~13)。こちらのゲームでも、被弾した物体が飛び散る迫力に目が留まる。裂ける布の様子や流体の表現なども、物理演算プロセッサによる効果だ。

【画面11】CellFactorではPhysXプロセッサ搭載ボードを装着していないと起動できない。装着して起動した場合、設定画面にハードウェアアクセラレーションを切り替える項目が用意されてはいるものの、グレーアウトしているので無効にすることができない 【画面12】CellFactorより。グレネードランチャーで土管を破壊したシーンだが、その破片の飛び散り方の迫力は静止画でも伝わるだろう
【画面13】CellFactorより。布を銃撃したシーンだが、銃撃の衝撃によってゆらめく布の切れ端が非常にリアル 【画面14】CellFactorより。容器から流れ出た液体の表現も、物理演算による効果
【動画4】CellFactorのプレイ動画。PhysX専用アプリケーションだけあって、物理演算による表現が随所に盛り込まれている(約53.2MB)

 このほか、AGEIAのデモプログラム「Switchball」と、AGEIAにユーザー登録することで入手できるSDKに含まれるサンプルプログラムから、いくつかピックアップして動画を掲載しているのでご覧いただきたい。

 いずれもFRAPSによるキャプチャーでフレームレートが固定されてしまっているが、実際にはもっともストレスなく動く。先に紹介した2つのFPSゲームでは、銃弾と物体の衝突で発生する迫力を増す方向性が見られたが、こうしたデモプログラムで行なわれている物理シミュレーションを見ると、迫力だけではないリアルさを追求することも可能であることがイメージできるだろう。

【動画5】デモプログラムの1つであるSwitchball。ボールが木箱や板にぶつかったときの表現などに着目してほしい(約33MB) 【動画6】SDKのサンプルより。ボールをぶつけてブロックを崩すプログラムだが、ボールのぶつかる勢いに応じて崩れ方も異なる(約1.2MB) 【動画7】SDKのサンプルより。ドミノのデモだが、連鎖的に衝突を繰り返す典型的なPhysXの物理演算である(約12MB)
【動画8】SDKのサンプルより。馬がブロックを崩していくプログラムだが、この馬をゲーム中における自キャラクターと想定すれば、まずはこうした表現から実際のゲームに組み込まれていくのかも知れない(約5.1MB) 【動画9】SDKのサンプルより。リングが連結している鎖も、衝突を生み出しやすい例。重力のある世界を感じられるデモである(約3.2MB) 【動画10】SDKのサンプルより。これは絨毯(布)の動きを物理演算によって表現したもの(約2.9MB)
【動画11】SDKのサンプルより。車を操作してさまざまな物理演算を行なうデモ。旗が千切れる様子やシーソー状に動く板などに加え、車自体のサスペンションの動きもリアルに表現されている(約4.7MB)

●期待の新機軸ではあるがネックは将来性

 このように、ビデオカードとは異なりPhysXプロセッサはフレームレートの向上は確実なものではなく、むしろPhysXエンジンによる描画の違いがゲームの迫力やリアリティ向上効果についての意義が大きい。

 PhysXを使うことで新しいイベントが発生しているわけでもないので、もちろんPhysXを使わなくてもゲーム自体は楽しめる。ただ、PhysXを利用することは、ビデオカードを強化してより高いクオリティで描画するのとは、また違ったアプローチでの高クオリティ化ということが言えるのではないだろうか。

 本連載で行なったQuad SLIなどのハイエンドビデオカードのベンチマークからも分かるように、ビデオカードの性能は、すでにCPUに足を引っ張られている状態だ。ちなみに、今回試用したPhysX P1の評価ガイドによれば、3GHz以上のCPUにGeForce 7800/7900 GTXやRADEON X1800/1900シリーズのビデオカードをテスト環境として推奨している。

 物理演算はオブジェクトの動き自体の演算しか行なっておらず、描画はビデオカード側が従来どおり行なう。物理演算を駆使したアプリケーションでは、描画するオブジェクトの数も増えるわけで、SDKのサンプルのようなシンプルな内容ならともかく、CellFactorのような複雑な描画を行なうのであれば、その動作環境の要件が高まるのは当然だ。実際、Intel 945G内蔵グラフィックでの動作も試してみたが、根本的にフレームレートが伸びず物理演算の効果を楽しむどころではなかった。

 ただ、PhysXプロセッサの導入にあたっては、PhysXエンジンがどの程度普及するかを見極める必要があるのも事実だ。現在注目されている物理エンジンとして、「Havok FX」というものがある。こちらはHavokがNVIDIAと組んで、GPUとCPUを利用した物理演算を行なう仕組みを採用している。こうした動きは物理演算のハードウェアアクセラレーションに専用プロセッサを必要とするPhysXにとって逆風といえるのも事実だろう。

 先にも述べたとおり、PhysXプロセッサを活かすには、アプリケーション側がPhysXに対応している必要がある。対応を表明しているアプリケーションはAGEIAのWebサイト(http://www.ageia.com/physx/titles.html)で確認でき、「Unreal Tournament 2007」などキラーアプリとなり得るタイトルも名を連ねているので、このあたりに興味を持つ人は多いかも知れないが、将来性は未知数だ。

 今後、3Dゲームにおいて物理演算というものへの注目はより高まっていくのは間違いないと思うが、そのときPhysXエンジンがメインストリームの存在になるとは限らない。そういう不安を残している以上、PhysX搭載カードの4万円前後という価格は、決して安価ではなく、おいそれと買えるものではない。

 だが、興味のあるタイトルが含まれている人はもちろん、すでにそれなりのハイエンドなゲーム環境を持っている人がCPUやビデオカード以外で性能を強化したいのであれば、先行投資の対象にはなり得る存在といえるのではないだろうか。

□関連記事
【5月15日】ASUSTeK、「PhysX」搭載カードを6月1日国内発売
http://pc.watch.impress.co.jp/docs/2006/0515/asus.htm
【5月11日】エルザ、AGEIAとPhysX搭載製品の販売契約を締結
http://pc.watch.impress.co.jp/docs/2006/0511/elsa.htm
【5月9日】UAC、BFG製「PhysX」搭載カードを5月下旬に国内販売
http://pc.watch.impress.co.jp/docs/2006/0509/uac.htm
【4月12日】【海外】物理シミュレーションで現実化し始めたGPGPU
http://pc.watch.impress.co.jp/docs/2006/0412/kaigai260.htm
【4月7日】【海外】物理シミュレーションをハードで実現するAGEIAの「PhysX」
http://pc.watch.impress.co.jp/docs/2006/0407/kaigai259.htm

バックナンバー

(2006年5月30日)

[Text by 多和田新也]


【PC Watchホームページ】


PC Watch編集部 pc-watch-info@impress.co.jp ご質問に対して、個別にご回答はいたしません

Copyright (c) 2006 Impress Corporation, an Impress Group company. All rights reserved.