これは興味深いかもしれません:
http://www.xbitlabs.com/news/video/display/20091001171332_AMD_Nvidia_PhysX_Will_Be_Irrelevant.html
それは偏っています...基本的にはAMDとのインタビューです...しかし、あなたの場合に検討する価値があると私が思ういくつかの点を示しています.
David Seiler が指摘した問題のため、将来的に物理エンジンを切り替えることは、大きな/克服できない問題になる可能性があります.特にゲームプレイが物理に密接に結びついている場合.
そのため、エンジンでハードウェア アクセラレーションによる物理演算が今すぐ必要な場合は、Physx を選択します。不愉快な選択に直面する:
1) 使用するエンジンを書き直して (新しいクロスプラットフォーム ハードウェア アクセラレーション物理エンジンの名前を挿入)、ゲームのダイナミクスを悪い方法で変更する可能性があります。
2) Physx のみを使用し続け、AMD ユーザーを完全に無視する
3) Physx が AMD GPU で動作するようにします (blech...)
フォールバックとして CPU 物理エンジンを使用するという David のアイデア (2 倍の作業を行い、同じように動作しない 2 つのエンジンを生成する) を除けば、唯一の選択肢は純粋な CPU 物理を使用することです。
ただし、OpenCL のようなものが主流になると、ODE/Bullet/kin がそれを組み込み始めるのを見るかもしれません... IOW ODE/Bullet/kin を使用してコーディングすると、GPU アクセラレーションを「無料」で取得できる可能性があります (おそらく最終的にはそうなるでしょう)。後で (コードに変更はありません)。GPU バージョンでは動作が若干異なります (バタフライ効果と浮動小数点の実装の違いにより避けられない問題です) が、少なくとも ODE/Bullet/kin コミュニティと協力してそのギャップを減らすことができます。 .
これが私の推奨事項です。現在 CPU のみを使用するオープン ソースの物理ライブラリを使用し、それが OpenCL、CUDA、ATI のストリーム言語などを介して GPU を使用するのを待ちます。それが発生すると、パフォーマンスが急速に向上します。頭痛の種を救ってください。