PhysX
PhysX(フィジックス)とは物理演算に特化したSDKライブラリまたは専用チップの総称。開発元は米カリフォルニア州に本拠を置くAGEIA社。2008年2月4日に、グラフィックボード・GeForceシリーズを開発するNVIDIAがAGEIAを買収し、PhysXとGeForceシリーズと統合が発表された[1]。
NVIDIAによる買収後は、専用チップおよび専用ボードは生産されていない。 しかし、ゲーム用GPUで大きなシェアを持つ同社のGeForce8シリーズ以降の製品のうち、256MB以上のグラフィックスメモリを搭載する製品でPhysXのハードウェアアクセラレートに対応した。 ドライバの配信も開始されており、利用可能ユーザ数の増大と共に、NVIDIA製GPU推奨のゲームにおいて対応が広まりつつある。 (これはNVIDIA社が技術協力したゲームデベロッパが多数いるために[1]できることである。)
日夜進化を続けるコンピュータゲームにおける、浮動小数点演算などの物理演算をCPUから肩代わりする事で動作スピードの上昇を目指したもの。現在のCPUのパフォーマンスでは不可能に近い「爆発によって飛び散った破片を毎回ランダムに演算する」等の複雑な描写を、動画の読み出しではなく、実際にその場で演算して描写することが可能になるとされている。対抗とされる物理演算システムとしてはHavokが挙げられる。
数多くのゲーム(主に海外)でPhysXが採用されている。[2]また、開発ツールであるPhysX SDKは1万人以上のアクティブユーザーを抱え、PhysXソフトウェアライブラリは家庭用・PC用ゲームの双方に渡って140タイトルで採用されるなど、開発側からの注目は大きい。
目次 |
[編集] 対応プラットフォーム
PhysXは以下のプラットフォーム上で動作する。
いずれのプラットフォーム用SDKも無料で配布されている。 これらのうち、PC用のSDKはNVIDIA社のPhysX SDK ダウンロードページ[3]より直接入手する事ができる。 NVIDIA社スタッフによるサポート及び開発支援ツールが有償で提供されているが、これらを利用しない限りは商用利用を含めて無料である。
[編集] PhysXの機能
PhysXでは現在、以下の機能がサポートされている。
- 剛体物理
- 衝突判定
- 各種関節
- ラグドール
- 摩擦力の考慮
- 衝突の検知
- オブジェクトをグループ化し、衝突判定のON・OFF切り替え
- 1軸方向のみに物理作用を限定
- 接触通知
- 先進的なキャラクタコントロール
- 乗り物のための動力学
- マルチスレッド・マルチプラットフォーム・PPUの利用
- 流体シミュレーション
- 布シミュレーション
- 軟体の表現
- フォースフィールドの表現
[編集] 問題点と今後
PhysXの発表当初、以下のような問題があった。
- 導入しても対応しているゲームの挙動に影響があるだけでパソコン自体のパフォーマンス向上には関係ないこと
- ゲームが対応していなければPhysXチップの導入には意味が無いこと
- ゲームはPhysXに「対応している」以上のことができないこと
たとえば、PhysXによって爆発の破片によるダメージ判定なども出来るが、それはネット対戦などにおいては全てのプレーヤーがPhysXを導入していなければ対応が難しい。(ゲームソフトとは別に物理演算ボードを購入する必要があった。)
- 限られたユーザしか利用可能でないため、デベロッパは安易にPhsyXを必須動作条件に入れることができない。
これらの問題点はNVIDIAがAGEIAを買収した事により一定の解決を見る。ただしそれによって新たなデメリットも生じた。
- メリット
- デメリット
- 本来、グラフィック描画に用いられるはずのユニファイドシェーダの一部を物理演算に割く事になるため、結果としてグラフィックパフォーマンスが低下する。また、NVIDIA社が提唱するPhysXエフェクトの採用はそのまま破片、水滴など描画対象の爆発的増殖と一体である。その為、物理効果が現れれば同時に膨大な描画負荷が発生する事になり、やはりパフォーマンスは大きく低下してしまう。以上の点から、現実問題として、単独VGAでのPhysX利用はフレームレートの観点から実用的ではない。これはPhysX本格採用タイトルのCryostasis等で特に顕著である。
- AGEIA買収当時においても、NVIDIA社とAMD社の関係上、またPhysXとHavokの関係上AMD製GPUに対応する可能性は著しく低かったが、AGEIA社のPPU、或いは8X00以降のNVIDIA製VGAを別途搭載する事により、ハードウェアPhysXをAMD社製VGA搭載機でも利用する事が出来た。だが、同社がリリースした186番台以降のデバイスドライバーは、AMD社製グラフィックシステムを検知すると、たとえPhysX対応ハードウェアがPCにインストールされていても、それらの物理演算機能を強制的に停止させてしまう。[2]これにはAGEIA社のPPUも含まれる。
- 2009年10月現在、MODドライバーや非公認パッチによって、AMD系VGA搭載システムでもPhysXの利用は変則的にではあるものの、可能となっている。[3]
しかし、AMDはintel社のHavokと提携し、[4] 尚且つ独自にオープンソースベースの物理エンジン、Bullet Physicsにも着手している為、[5] 物理エンジンにおけるAMDとNVIDIAの歩み寄りは、既に非現実的なものとなりつつある。
[編集] 脚注
- ^ NVIDIA,「PhysX」のAGEIA Technologiesを買収
- ^ [http://www.nzone.com/object/nzone_physxgames_all.html PhysX Games List
- ^ PhysX SDK Downloads,PhysX SDK ダウンロードページ