| 物理X | |
|---|---|
| 原作者 | NovodeX AG ( ETH チューリッヒ) |
| 開発者 | Nvidia Corporation (2008年現在) Ageia (2004年 - 2008年) NovodeX AG (2001年 - 2004年) |
| 安定版リリース | Blast 5.0.6; PhysX SDK 5.5.0; Flow 2.1.0; PhysX システムソフトウェア 9.23.1019 / 2024年12月13日 ( 2024-12-13 ) |
| リポジトリ | https://github.com/NVIDIA-Omniverse/PhysX (5.x) https://github.com/NVIDIAGameWorks/PhysX (4.x および 3.4) https://github.com/NVIDIAGameWorks/PhysX-3.4 (3.4) |
| 書かれた | C++ |
| オペレーティング·システム | Microsoft Windows、macOS、Linux、PlayStation 2、PlayStation 3、PlayStation 4、Xbox 360、Xbox One、Wii、iOS、Android |
| タイプ | 物理シミュレーション |
| ライセンス | BSD-3 |
| Webサイト | Nvidia PhysX 開発者サイトドキュメント |

PhysXは、 Nvidia GameWorksソフトウェアスイートの一部としてNvidiaが開発したオープンソース[ 1 ]のリアルタイム物理エンジンミドルウェアSDKです。
当初、PhysXをサポートするビデオゲームは、PhysX PPU(Ageia社が設計した拡張カード)によって高速化されることが想定されていました。しかし、Ageia社がNvidia社に買収された後、専用のPhysXカードは廃止され、APIはCUDA対応のGeForce GPUで実行されるようになりました。どちらの場合も、ハードウェアアクセラレーションによって特定の物理演算をCPUからオフロードし、CPUが他のタスクを実行できるようになりました。
PhysXやその他のミドルウェア物理エンジンは、今日多くのビデオゲームで使用されています。これは、ゲーム開発者が、例えばソフトボディダイナミクスを実行するために古典力学(ニュートン力学)を実装する独自のコードを書く必要がないため、開発時間を節約できるためです。[ 2 ]
歴史
今日PhysXとして知られる技術は、NovodeXと呼ばれる物理シミュレーションエンジンに端を発しています。このエンジンは、スイス連邦工科大学チューリッヒ校(ETH Zurich)のスピンオフ企業であるNovodeX AGによって開発されました。 [ 3 ] 2004年、AgeiaはNovodeX AGを買収し、CPUの性能向上を支援する物理演算処理を高速化するハードウェア技術の開発を開始しました。Ageiaはこの技術をPhysXと名付け、SDKはNovodeXからPhysXに改名され、アクセラレータカードはPPU(Physics Processing Unit)と名付けられました。[ 4 ]
PhysX技術を実装した最初のビデオゲームは、2005年9月にロシアのゲームストアでのみ発売された「スターリン地下鉄」である。 [ 5 ]
2008年、Ageiaはグラフィックス技術メーカーのNvidiaに買収されました。[ 6 ] NvidiaはGeForceグラフィックスカードのラインでPhysXハードウェアアクセラレーションを有効にし始めました[ 7 ]そして最終的にAgeia PPUのサポートを中止しました[ 8 ] 。
PhysX SDK 3.0は2011年5月にリリースされ、SDKの大幅な書き換えが行われ、より効率的なマルチスレッドやサポートされているすべてのプラットフォーム向けの統一されたコードベースなどの改善がもたらされました。[ 2 ]
GDC 2015で、NvidiaはPhysXのソースコードをGitHubで公開しましたが、developer.nvidia.comでの登録が必要でした。[ 9 ]独自のSDKは、 Windows、Linux、macOS、iOS、Androidプラットフォーム上で商用および非商用の両方で開発者に無料で提供されました。[ 10 ]
2018年12月3日、PhysXは3条項BSDライセンスの下でオープンソース化されましたが、この変更はコンピューターとモバイルプラットフォームにのみ適用されました。[ 11 ]
2022年11月8日、オープンソースリリースは、同じ3条項BSDライセンスの下でPhysX 5に更新されました。[ 12 ]
2025年2月、 GeForce RTX 50シリーズでは32ビットCUDAアプリケーションのサポートが廃止され、32ビットタイトルではGPUアクセラレーションPhysXが機能しなくなりました。[ 13 ]これにより、GPU PhysXオプションがCPUによって処理されるようになり、 Mirror's EdgeやBorderlands 2などのタイトルでパフォーマンスが低下しました。[ 14 ]
特徴
PhysXエンジンとSDKは、Microsoft Windows、macOS、Linux、[ 11 ] PlayStation 3、[ 15 ] [ 16 ] PlayStation 4、[ 17 ] Xbox 360、[ 18 ] Xbox One、[ 19 ] Wii、[ 20 ] iOSおよびAndroidで利用できます。[ 11 ]
PhysXはマルチスレッド対応の物理シミュレーションSDKです。剛体ダイナミクス、ソフトボディダイナミクス(布の裂け目や加圧された布などの布シミュレーションなど)、ラグドールとキャラクターコントローラー、車両ダイナミクス、パーティクル、ボリューム流体シミュレーションをサポートしています。
ハードウェアアクセラレーション

PPU
物理演算処理装置(PPU)は、CPUの計算負荷、特に物理演算に関わる計算負荷を軽減するために特別に設計されたプロセッサです。PhysX PPUは、ASUS [ 21 ]、BFG Technologies [ 22 ]、[ 23 ] 、 Dell [ 24 ]、ELSA Technology [ 25 ]などによってPCIまたはPCIeカードの形で消費者に提供されました。
PhysX SDKのバージョン2.8.3以降、PPUカードのサポートは廃止され、PPUカードは製造されなくなりました。[ 8 ] Ageiaが設計したPhysX PPUスタンドアロンカードの最後の形態は、専用の9800GTXとほぼ同じPhysXパフォーマンスを持っていました。[ 26 ]
グラフィックプロセッサ
Nvidia による Ageia の買収後、PhysX の開発は PPU 拡張カードから離れ、代わりに最新の GPU のGPGPU機能に重点が置かれるようになりました。
最新の GPU は、コンピューター グラフィックスの操作と表示に非常に効率的であり、高度な並列構造により、PhysX を使用した物理シミュレーションの高速化には汎用 CPU よりも効果的です。
CUDA対応のGeForceグラフィックスカード(8シリーズ以降のGPUで、最低32個のコアと最低256MBの専用グラフィックスメモリ[ 27 ] )であれば、専用のPhysXカードをインストールしなくてもPhysXを利用できます。
頂点
Nvidia APEXテクノロジーは、PhysX SDKをベースに構築されたマルチプラットフォーム対応のスケーラブルなダイナミクスフレームワークです。2010年8月に『Mafia II』で初めて導入されました。 [ 28 ] NvidiaのAPEXは、以下のモジュールで構成されています:APEX Destruction、APEX Clothing、APEX Particles、APEX Turbulence、APEX ForceField、そして2011年に開発中止となった旧APEX Vegetation。[ 29 ] [ 30 ]
バージョン1.4.1以降、APEX SDKは非推奨となりました。[ 31 ]
エヌビディアフレックス
FleXは、リアルタイム視覚効果のためのパーティクルベースのシミュレーション技術です。伝統的に、視覚効果は、剛体、流体、衣服など、それぞれに特化したソルバーを用いて作成された要素の組み合わせによって作成されていました。FleXは、すべてのオブジェクトタイプに対して統一されたパーティクル表現を使用するため、異なるシミュレーション対象物がシームレスに相互作用する新しい効果を可能にします。このような統一された物理ソルバーは、Autodesk MayaのnClothやSoftimageのLagoaなどのツールが広く使用されているオフラインコンピュータグラフィックスの世界では定番です。FleXの目標は、GPUのパワーを利用して、これらのオフラインアプリケーションの機能をリアルタイムコンピュータグラフィックスにもたらすことです。[ 32 ]
現実世界のテクノロジーからの批判
2010年7月5日、Real World TechnologiesはPhysXアーキテクチャの分析[ 33 ]を公開しました。この分析によると、当時のPhysXアプリケーションで使用されていたコードのほとんどは、マルチスレッド最適化が施されていないx87命令に基づいていました。そのため、CPUでPhysXコードを実行すると、パフォーマンスが大幅に低下する可能性があります。記事では、 SSE命令を使用してPhysXを書き換えることで、CPU PhysXとGPU PhysXのパフォーマンス差を大幅に軽減できる可能性があると示唆しています。
Real World Technologiesの分析に対し、PhysXプロダクトマネージャーのマイク・スコローンズ氏は[ 34 ]、ほとんどのゲームが最初にコンソール向けに開発され、その後PCに移植されるため、SSEのサポートが遅れていると述べた。その結果、現代のコンピューターは、ほとんど、あるいは全く最適化を行わなくても、これらのゲームをコンソールよりも高速かつ快適に実行できる。NvidiaのシニアPRマネージャー、ブライアン・デル・リッツォ氏は、マルチスレッドはCPU PhysX 2.xで既に利用可能であり、それを活用するかどうかは開発者次第だったと説明した。また、自動マルチスレッドとSSEはPhysX SDKバージョン3で導入される予定であると述べた[ 35 ] 。
PhysX SDK 3.0は2011年5月にリリースされ、SDKの大幅な書き換えが行われ、より効率的なマルチスレッドやサポートされているすべてのプラットフォーム向けの統一されたコードベースなどの改善がもたらされました。[ 2 ]
使用法
ビデオゲームにおけるPhysX
PhysX技術は、 Unreal Engine(バージョン3以降)、Unity、Gamebryo、Vision(バージョン6以降)、Instinct Engine、[ 36 ] Panda3D、Diesel、Torque、HeroEngine、BigWorldなどのゲームエンジンで使用されています。[ 27 ]
数少ない主要な物理エンジンの一つとして、The Witcher 3: Wild Hunt、Warframe、Killing Floor 2、Batman: Arkham Knight、Planetside 2、Borderlands 2など、多くのゲームで使用されています。これらのゲームのほとんどは、物理シミュレーションの処理にCPUを使用しています。
ハードウェアアクセラレーションによるPhysXのオプションサポートを備えたビデオゲームには、裂ける布、動的な煙、シミュレートされた粒子の破片などの追加エフェクトが含まれていることがよくあります。[ 37 ] [ 38 ] [ 39 ]
他のソフトウェアにおけるPhysX
PhysX をサポートするその他のソフトウェアには次のものがあります:
- Active Worlds (AW) は、Windows 上でクライアントが実行される 3D 仮想現実プラットフォームです。
- Amazon LumberyardはAmazonが開発した3Dゲーム開発エンジンである[ 40 ]
- Autodesk 3ds Max、Autodesk Maya、Autodesk Softimage、コンピュータアニメーションスイート[ 41 ] [ 42 ] [ 43 ]
- DarkBASIC Professional(DarkPHYSICSアップグレード付き)、ゲーム開発向けのプログラミング言語[ 44 ]
- DX Studio、インタラクティブ3Dグラフィックスを作成するための統合開発環境[ 45 ]
- 旧ソニー・オンライン・エンタテインメントが開発したゲームエンジン「ForgeLight」。
- Futuremarkの3DMark06とVantageベンチマークツール[ 46 ]
- Microsoft Robotics Studio、ロボット制御とシミュレーションのための環境[ 47 ]
- NvidiaのSuperSonic SledとRaging Rapids Ride、技術デモ
- OGRE(NxOgreラッパー経由)、オープンソースのレンダリングエンジン
- 物理抽象化レイヤー、物理シミュレーションAPI抽象化システム( COLLADAとScythe Physics EditorのPhysXサポートを提供) [ 48 ]
- Rayfireは、 Autodesk 3ds Maxのプラグインで、フラクチャリングやその他の物理シミュレーションを可能にします。
- 物理エンジン評価ラボは、物理エンジンを評価、比較、ベンチマークするために設計されたツールです。[ 49 ]
- Epic Gamesのゲーム開発ソフトウェア、 Unreal Engine。Unreal Engine 4.26以降ではPhysXが正式に非推奨となりました。[ 50 ]
- Unity ApSのUnity。Unityのデータ指向技術スタックはPhysXを使用していません。[ 51 ]
参照
参考文献
- ^ 「NVIDIA PhysX SDK 4.1」。Engadget 。2022年4月5日閲覧。
- ^ a b c「NVIDIA、PhysX SDK V3のリリースを発表」。Nvidia 。 2011年5月24日時点のオリジナルよりアーカイブ。 2011年6月3日閲覧。
- ^ "NovodeX AG" . ETH Zürich . 2018年1月8日時点のオリジナルよりアーカイブ。2018年12月4日閲覧。
- ^ César A. Berardini (2005年4月12日). 「AGEIA Technologies Interview」 . 2011年9月21日時点のオリジナルよりアーカイブ。2011年6月8日閲覧。
- ^ 「物理エンジン:PhysX」 . MobyGames . 2023年9月6日閲覧。
- ^ 「NVIDIA、AGEIA Technologiesの買収を完了」(プレスリリース)NVIDIA Corporation、2008年2月13日。 2009年3月18日閲覧。
- ^ 「CUDA の PhysX、Linux のサポートは当然ですか?」。フォロニクス。フォロニクスメディア。 2008 年 2 月 14 日。2008 年2 月 14 日に取得。
- ^ a b「最新のPhysXドライバーでPPUサポートを復元する方法 | PhysXInfo.com – PhysXニュース」。PhysXInfo.com。2011年1月17日。2011年11月24日時点のオリジナルよりアーカイブ。 2011年11月30日閲覧。
- ^ 「PhysX On GitHub」 . Nvidia . 2015年3月6日閲覧。
- ^ 「2017年1月7日時点のPhysX SDK」。Nvidia 。 2017年1月7日時点のオリジナルよりアーカイブ。2017年9月3日閲覧。
- ^ a b c「PhysX SDK」。NVIDIA Developer。2018年11月28日。2018年12月5日時点のオリジナルよりアーカイブ。 2018年12月5日閲覧。
- ^ 「オープンソースシミュレーションがNVIDIA PhysX 5リリースで拡大」。Nvidia 。 2022年11月8日。 2023年5月28日時点のオリジナルよりアーカイブ。2023年6月15日閲覧。
- ^ Klotz, Aaron. 「PhysXがRTX 50シリーズGPUでひっそりと引退:Nvidiaが32ビットCUDAアプリのサポートを終了」 . Tom's Hardware . Future US Inc. 2025年2月24日閲覧。
- ^ Bentley, James. 「Nvidiaは新型RTX 50シリーズにおける32ビットPhysXのサポートをひっそりと終了したため、『バットマン:アーカム・シティ』のようなゲームは旧型のGPUの方がグラフィックも動作も良くなる可能性がある」 . PC Gamer . Future US Inc. 2025年2月24日閲覧。
- ^ 「ソニー・コンピュータエンタテインメント、AGEIAと戦略的ライセンス契約を締結」(PDF) (プレスリリース). ソニー・コンピュータエンタテインメント. 2005年7月21日.オリジナル(PDF)より2006年3月11日時点のアーカイブ。 2006年8月23日閲覧。
- ^ 「Playstation 3、Nvidiaから無料のPhysXを入手」 Kotaku、2009年3月18日。
- ^ Lowe, Scott (2013年3月7日). 「Nvidia、PlayStation 4のPhysXサポートを発表」 .
- ^ 「PhysX – 概要 – GeForce」 . Nvidia.com. 2009年4月29日時点のオリジナルよりアーカイブ。2011年11月30日閲覧。
- ^ 「NVIDIA、Microsoft Xbox Oneゲームコンソール向けPhysXサポートを発表」 Nvidia.com。2014年11月9日時点のオリジナルよりアーカイブ。 2014年11月9日閲覧。
- ^ 「ニュース – GDC前:Nvidia PhysXがWii開発者に承認」 Gamasutra、2009年3月19日。2009年3月27日時点のオリジナルよりアーカイブ。 2011年11月30日閲覧。
- ^ 「Asus 128MB PhysXカードレビュー/プレビュー」 2006年7月12日。
- ^ 「AGEIAとBFG Technologiesが小売販売契約を締結」。 2006年4月26日時点のオリジナルよりアーカイブ。
- ^ 「BFG Ageia PhysXカードレビュー」 2007年10月1日。
- ^ 「AGEIA PhysX - グラフィックカード - AGEIA PhysX - 128 MB 仕様」 CNET。
- ^ 「ELSAがAgeiaと提携」。
- ^ 「PC Games Hardwareからの英語記事」 www.pcgameshardware.com 2009年1月26日。
- ^ a b「PhysX FAQ」 . Nvidia.com. 2015年12月11日時点のオリジナルよりアーカイブ。2015年12月10日閲覧。
- ^ Olin Coles. 「Mafia-II ビデオゲームパフォーマンスレビュー」 . BenchmarkReviews.com . 2010年8月23日閲覧。
- ^ “APEX” . 2013年12月11日時点のオリジナルよりアーカイブ。2011年6月8日閲覧。
- ^ “Category:APEX - PhysX Wiki” . PhysXInfo.com. 2021年11月30日時点のオリジナルよりアーカイブ。2013年7月21日閲覧。
- ^ 「APEX 1.4.1 - リリースノート(APEXは非推奨になりました)」 . gameworksdocs.nvidia.com . 2018年12月5日閲覧。
- ^ 「NVIDIA FleX」 . NVIDIA Developer . 2015年8月13日. 2019年4月17日閲覧。
- ^ 「PhysX87: ソフトウェアの欠陥」www.realworldtech.com。
- ^ Stokes, Jon (2010年7月8日). 「NVIDIAはIntelに対抗するため、CPUゲーミング物理ライブラリを弱体化させたのか?」 Arstechnica.com . 2011年11月30日閲覧。
- ^ 「Nvidia: CPU PhysXを妨害するつもりはない | thinq_ | 1ページ目」 Thinq.co.uk 2011年11月30日閲覧。
- ^ “Instinct Software - Instinct Engine SDK” . Instinctengine.com. 2015年2月13日時点のオリジナルよりアーカイブ。2013年10月4日閲覧。
- ^ Matt Butrovich (2009年2月12日). 「Mirror's EdgeにおけるPhysXの考察」 . The Tech Report . 2012年6月27日時点のオリジナルよりアーカイブ。2011年4月6日閲覧。
- ^ Rich Brown (2009年9月21日). 「NvidiaのPhysXにより、PC版『バットマン:アーカム・アサイラム』は待つだけの価値がある」 . cNET.com . 2011年4月6日閲覧。
- ^ Matthew Murray (2010年9月2日). 「Mafia II: Applied PhysXは価値があるか?」 ExtremeTech . 2010年12月30日時点のオリジナルよりアーカイブ。 2011年4月6日閲覧。
- ^ “PhysX - Lumberyard ユーザーガイド” . 2020年9月22日時点のオリジナルよりアーカイブ。2020年4月15日閲覧。
- ^ Jim Thacker (2011年3月1日). 「ビデオ:Autodesk、Maya 2012の新機能を発表」 . cgchannel.com . 2011年4月6日閲覧。
- ^ 「3ds Max 2012とMaya 2012がPhysXサポートを追加」 Beyond3D.com、2011年3月1日。2017年7月8日時点のオリジナルよりアーカイブ。2011年4月6日閲覧。
- ^ Randall Hand (2010年5月5日). 「NVidia PhysX and CUDA in Softimage 2011」 . Vizworld.com . 2011年4月6日閲覧。
- ^ 「The Game CreatorsがAGEIA PhysXテクノロジーをDarkBASIC Professionalに統合」(プレスリリース)The Game Creators、2006年3月22日。2006年4月27日時点のオリジナルよりアーカイブ。 2006年9月23日閲覧。
- ^ 「概要」 . DX Studio . Worldweaver. 2009年7月5日時点のオリジナルよりアーカイブ。 2008年11月2日閲覧。
- ^ 「AGEIAがFuturemarkの3DMarkベンチマーク開発プログラムに参加」 FindArticles 、 CBS Interactive、BusinessWire、2006年9月27日。 2008年11月3日閲覧。
- ^ 「シミュレーションの概要」。Microsoft Robotics Developer Center。Microsoft。2012年3月。
- ^ Boeing, Adrian. 「エンジン」 . 物理抽象化レイヤー. 2007年11月18日閲覧。
- ^ Pierre-Terdiman (2019年3月22日)、GitHub - Pierre-Terdiman/PEEL: Physics Engine Evaluation Lab.、2019年3月22日閲覧
- ^ “Unreal Engine 4.26 Preview” . 2020年9月24日. 2021年1月20日時点のオリジナルよりアーカイブ。2020年10月10日閲覧。
- ^ 「Unity - マニュアル: 物理学」。