PhysX
PhysX(フィジックス/フィジクス[1])とはNVIDIAが開発・提供している、リアルタイムの物理演算エンジン。
開発元 | NVIDIA Corporation |
---|---|
最新版 |
9.18.0907
/ 2018年9月18日 |
リポジトリ | |
対応OS | Microsoft Windows, macOS, Linux, PlayStation 2, PlayStation 3, PlayStation 4, Xbox 360, Xbox One, Wii, iOS, Android |
種別 | 物理演算エンジン |
ライセンス | 3条項BSDライセンス |
公式サイト | Nvidia PhysX developer site |
概要
編集ソフトウェアがPhysXのハードウェアアクセラレーションに対応している場合、CUDAが使用可能なGeForce(8シリーズ以降の製品)のうち、32以上のコア、256MB以上のグラフィックスメモリを搭載する製品でハードウェアアクセラレートが可能である[2]。
PhysXのハードウェアアクセラレーションは、日夜進化を続けるコンピュータゲームにおける物理演算をCPUから肩代わりする事で動作スピードの上昇を目指したものである。汎用プロセッサであるCPUのパフォーマンスでは不可能に近い「爆発によって飛び散った破片を毎回ランダムに演算する」等の複雑かつ高負荷な描写を、事前作成済み動画の読み出しなどではなく、実際にその場で演算してリアルタイムに描写することが可能になるとされている。対抗とされる物理演算システムとしてはHavokが挙げられる。
PhysXは様々なプラットフォームで500以上のゲームに使われている[3]。
歴史
編集開発元は米カリフォルニア州に本拠を置いていたAgeia社。2008年2月4日に、NVIDIA GeForceシリーズを開発するNVIDIAがAgeiaを買収し、PhysXとGeForceシリーズの統合が発表された[4]。NVIDIAによる買収後は、専用チップおよび専用ボードは生産されていない。
PhysX SDK 2.8.3からPhysics processing unit(PPU)のサポートが打ち切られた[5]。
対応プラットフォーム
編集PhysXは以下のプラットフォーム上で動作する[6]。
いずれのプラットフォーム用SDKも無料で配布されている。これらのうち、PC用のSDKはNVIDIA社のPhysX SDK ダウンロードページ[7]より直接入手する事ができる。NVIDIA社スタッフによるサポート及び開発支援ツールが有償で提供されているが、これらを利用しない限りは商用利用を含めて無料である。
PhysXはUnreal EngineやUnity (ゲームエンジン)にも統合されている。
PhysXの機能
編集PhysXでは2023年、以下の機能がサポートされている。
- 剛体物理
- 衝突判定
- 各種関節
- ラグドール
- 摩擦力の考慮
- 衝突の検知
- オブジェクトをグループ化し、衝突判定のON・OFF切り替え
- 1軸方向のみに物理作用を限定
- 接触通知
- 先進的なキャラクタコントロール
- 乗り物のための動力学
- マルチスレッド・マルチプラットフォーム
- 流体シミュレーション
- 布シミュレーション
- 軟体の表現
- フォースフィールドの表現
問題点と今後
編集この節には独自研究が含まれているおそれがあります。 |
PhysXの発表当初、以下のような問題があった。
- 導入しても対応しているゲームの挙動に影響があるだけでPC自体のパフォーマンス向上には関係ないこと
- ゲームが対応していなければPhysXチップの導入には意味が無いこと
- ゲームはPhysXに「対応している」以上のことができないこと
たとえば、PhysXによって爆発の破片によるダメージ判定なども出来るが、それはネット対戦などにおいては全てのプレーヤーがPhysXを導入していなければ対応が難しい。(ゲームソフトとは別に物理演算ボードを購入する必要があった。)
- 限られたユーザーしか利用可能でないため、デベロッパは安易にPhsyXを必須動作条件に入れることができない。
これらの問題点はNVIDIAがAGEIAを買収した事により一定の解決を見る。ただしそれによって新たなデメリットも生じた。
- メリット
- デメリット
- 本来、グラフィック描画に用いられるはずのユニファイドシェーダーの一部を物理演算に割く事になるため、結果としてグラフィックパフォーマンスが低下する。また、NVIDIA社が提唱するPhysXエフェクトの採用はそのまま破片、水滴など描画対象の爆発的増殖と一体である。その為、物理効果が現れれば同時に膨大な描画負荷やリソース消費が発生する事になり、やはりパフォーマンスは大きく低下してしまう。以上の点から、現実問題として、単独VGAでのPhysX利用はフレームレート維持の観点から実用的ではない(演算専用のサブグラフィックスデバイスを別途用意しなければならない)。これはPhysX本格採用タイトルのCryostasis等で特に顕著である。
- AGEIA買収当時においても、NVIDIA社とAMD社の関係上、またPhysXとHavokの関係上AMD RadeonのようなAMD製GPUに対応する可能性は著しく低かったが、AGEIA社のPPU、或いは8X00以降のNVIDIA製VGAを別途搭載する事により、ハードウェアPhysXをAMD社製VGA搭載機でも利用する事が出来た。だが、同社がリリースした186番台以降のデバイスドライバは、AMD社製グラフィックシステムを検知すると、たとえPhysX対応ハードウェアがPCにインストールされていても、それらの物理演算機能を強制的に停止させてしまう [1]。これにはAGEIA社のPPUも含まれる。
- 2009年10月現在、MODドライバーや非公認パッチによって、AMD系VGA搭載システムでもPhysXの利用は変則的にではあるものの、可能となっている。[2]
しかし、AMDはIntel社のHavokと提携し [3]、なおかつ独自にオープンソースベースの物理エンジンBullet Physicsにも着手している為 [4]、物理エンジンにおけるAMDとNVIDIAの歩み寄りは、既に非現実的なものとなりつつある。
en:List of games with hardware-accelerated PhysX supportのリストのとおり、ハードウェアによるPhysXアクセラレーションに対応したゲームタイトルの数はソフトウェアによるPhysX利用タイトルの数に比べると限定的である。
APEX
編集APEX (Applied PhysX Extension) はツールによるオーサリングを前提としたPhysXの拡張であり[8]、その APEX SDK では Clothing(布)、Destruction(破壊)、Particles(パーティクル)、Turbulence(乱流)、ForceField(力場)のモジュールを搭載していた[9]。APEX は Unreal Engine などの一般的なゲームエンジンにも採用されていた[10](現在は独自のChaos Destructionなどに移行)。
その後 APEX SDK は1.4.1で非推奨となり[11]、GameWorks PhysXも解体され、破壊は NVIDIA Blast に、布は NVIDIA Clothに、パーティクルは NVIDIA FleX と NVIDIA Flow に置き換えられた[12]。
APEXのオーサリングツールには破壊モジュール向け単体ツールの APEX FractureTool[13]及び APEX PhysXLab [10]、布モジュール向け単体ツールの APEX Clothing Tool[14]、DCC統合プラグインの PhysX DCC Plug-Ins が存在した[15]。PhysXLab の後継には NVIDIA Blast 向けの Blast Authoring Tool がある[16]。
脚注
編集- ^ ASCII.jp:アキバで恥をかかないための最新パーツ事情2009【ビデオカード編】 (4/7)|アキバで恥をかかないための最新パーツ事情2009
- ^ “PhysX FAQ”. 2017年9月3日閲覧。
- ^ “PhysX Source on GitHub”. 2017年8月24日閲覧。
- ^ NVIDIA,「PhysX」のAGEIA Technologiesを買収
- ^ “How to restore PPU support with latest PhysX Drivers | PhysXInfo.com – PhysX News”. PhysXInfo.com (2011年1月17日). 2017年8月24日閲覧。
- ^ PhysX SDK | NVIDIA Developer
- ^ PhysX SDK Downloads,PhysX SDK ダウンロードページ
- ^ GDC 2009#08 - NVIDIA,PhysXの可能性を広げる「APEX」の現状とデモを公開 4Gamer 2009年3月26日
- ^ NVIDIA APEX SDK Documentation NVIDIA
- ^ a b APEX - Unreal Engine Documentation Epic Games
- ^ APEX 1.4.1 - Release Notes (APEX has been deprecated) NVIDIA
- ^ GameWorks PhysX Overview NVIDIA
- ^ FractureTool NVIDIA
- ^ Clothing Tool NVIDIA
- ^ PhysX DCC Plug-Ins NVIDIA
- ^ Blast Authoring Tool Quick Start NVIDIA
関連項目
編集外部リンク
編集- ゲーマー向けPhysX公式サイト(英語)
- 開発者向けPhysX公式サイト(英語)
- PhysX公式サイト - ウェイバックマシン(2008年4月30日アーカイブ分)(英語)
- AGEIA社公式サイト - ウェイバックマシン(2008年5月9日アーカイブ分)(英語)
- PhysX対応ゲームのリスト - ウェイバックマシン(2010年2月8日アーカイブ分)(英語)
- Projects using PhysX SDK(英語)
- “多和田新也のニューアイテム診断室 新表現を生み出す物理演算プロセッサ「PhysX P1」”. PC Watch. Impress (2006年5月30日). 2016年10月28日閲覧。