質問

私は最近、シミュレーションやゲーム開発のためにそこに物理エンジンのいくつかを比較しました。いくつかは自由で、いくつかは、いくつかは、(1でも非常に商用$$$$である)、市販のある、オープンソースです。 ハボック、オード、ニュートン(別名oxNewton)、弾丸、PhysXのと「生」ビルドで物理学のいくつかの3Dエンジンでます。

いくつかの段階で、私は結論や質問に来ました: (私はそれを必要とする場合)私が原因GPU処理にその驚くべきパフォーマンスを活用することができれば、なぜ私は、NVIDIAのPhysX以外のものを使用する必要がありますか?将来のNVidiaカードで、私は、通常のCPU生成手順のさらなる改善とは独立を期待することができます。 SDKは無料で、それは同様にLinuxで使用可能です。もちろん、ベンダーロックインのビットであり、それはオープンソースではありません。

をいただきました!あなたの視野や経験?あなたが開発を今すぐ開始する場合は、上記に同意するだろうか。

歓声

役に立ちましたか?

解決

免責事項:私は私の専門的な経験は弾丸、ニュートン、およびODEに制限されている、のPhysXを使用したことがありません。これら3つのうち、ODEは遠く離れて私のお気に入りです。それはほとんどの数値的に安定だと他の2つは成熟度の問題(実装されていない便利な関節、未定義の方法で行動法的共同/モーターの組み合わせ、およびc)を持っています。

はい、私はそれができる知っている(あなたが唯一の物理ソリューションとしてのPhysXを使用している場合は、AMDのカードを使用して、人々があなたのゲームを実行することはできません。

あなたの質問では、ベンダーロックインの問題に言及したが、それは繰り返す価値がありますを動作させることが、それは公式のか)NVIDIAがサポートしていないのです。これを回避する一つの方法は、AMDのカードを搭載したシステム上のODEか何かを使用して、フェイルオーバー・エンジンを定義することです。これは動作しますが、それはあなたの仕事量を倍増します。それをあなたが共通のインターフェイスの背後にある2つのエンジンの違いを隠し、一度あなたのゲームの物理学コードの大部分を書くことができるだろうと考えるのは魅力的なのですが、ゲームの物理学であなたの難しさのほとんどは、特定の特異性を扱うになります物理エンジン、接触摩擦と反発のようなものの値を決定します。これらの値は、実験によって物理エンジンと(主に)正式に導出することができないので、あなたが見て良い発見立ち往生して、再生可能な値全体で一貫性の意味を持っていません。 PhysXのプラスフェイルオーバーを使用すると、二回すべてのことスカットの仕事をやっている。

高いレベルでは、私は、ストリーム処理のAPIのいずれかがまだ完全に焼かれる、および、まで非常に少なくとも、私たちがきたどのように顧客の反応インテルのララビー私は1つにコミットするには消極的だろうとは思いません人々のデザインを形作るます。

これまでハイエンドのゲーム開発のための当然の選択としてのPhysXを見てから、私はあなたがAMDのカードを持つ人々が(非常に低いプレーヤーベースのかなりの部分を占めるとは思わないのいずれかがない限り避けるべきであると言うだろう)、またはあなたの会社が裕福私はHavokについての良いものを聞いたことある場合にかかわらず、(よりもっともらしい2つの物理エンジンをテストするのに十分な符号化とQAのマンパワーを持っています)。それとも、私はあなただけで物理学をストリーミングすることは、あなたを満足させることができるように強烈な性能要求と物理学のゲームを設計した場合は、推測する - しかし、その場合には、私はバンドを開始し、ムーアの法則は、年にその事をやらせるために、あなたをお勧めしますまたは2ます。

他のヒント

2013年初頭、更新の答えを:Linuxでは、OS X、MS:私は、私はビッグスリーOS考えるもののために開発しています。私はまた、三の大下剤ライブラリを開発:PhysXの、ハボック、弾丸

のPhysXに関しては、私は最近、これを書いている時点の3.2.2である最新の化身でいくつかのテストをしました。私の意見ではNVIDIAは本当に、ライブラリの有効性を減少させました。最大は、剛体の加速の欠如です。 libにのみ粒子と布を加速します。でも、これらは一般的な剛体とのインタフェースはありません。彼らは物理シミュレーションされて大きな駆動力と科学技術計算に焦点を当て、GPUアクセラレーションのアプリを押し巨大なマーケティング・ドライブを持っているので、私は完全にこれをやってnVidiaのことで困惑しています。

だから、物理学の王の私の期待は、私が実際に逆を参照してくださいそのためにはPhysXの、ハボック、および弾丸であるシムながら。弾丸は、OpenCLのサポートのサンプリングとlibに2.8.1をリリースしました。弾丸は寛大なライセンスを持つ比較的小さなlibです。彼らの目標は、完全に統合されたOpenCLの剛体の加速と3を解放することです。

複数のコードパスに関するコメントの話の一部。私の意見では、これはあまりにも大したことはないです。私はすでに(; C ++とstd libのテンプレートを使用するほとんどの部分はスレッドとOS固有のコードを使用していない)、最小限のハードコードのサポートと3つのOSをサポートしています。これは、物理学ライブラリについても同様です。私は、共有ライブラリと抽象的な共通のインターフェースを使用しています。物理学はあまり変化しないので、これは結構です。)あなたはまだ、シミュレーション環境を設定するオブジェクトを管理し、環境中の反復をレンダリングし、終了時にクリーンアップする必要があります。残りはレジャーで実施し、フラッシュです。

主流の図書館でのOpenCLの出現により(nVidiaのクーダは非常に近いです - 弾丸OpenCLのデモを参照してください)。物理学のプラグインの仕事が縮小されます。

だから、ゼロから始めると物理モデリングのみに関心?あなたは弾丸と間違って行くことはできません。小型、柔軟なライセンス(無料)、ビッグスリーOSとGPUソリューション間でクロスプラットフォームになり、生産準備のOpenCLに非常に近います。

グッドラック!

あなたはこの興味深いを見つけることができます:

http://www.xbitlabs.com/news/video/display /20091001171332_AMD_Nvidia_PhysX_Will_Be_Irrelevant.htmlする

それは基本的にAMDとのインタビューだ...しかし、それは私があなたのケースで検討する価値があると思いますいくつかのポイントになります...バイアスされます。

ゲームプレイはしっかりと物理学にバインドされている場合は特に、

ので、問題のデビッド・ザイラーは...巨大な/克服できない問題である可能性があり、将来的に物理エンジンにいくつかの時間を切り替え、指摘しています。

だから、あなたが本当にPhysXのために行く、今すぐあなたのエンジンにハードウェアアクセラレーション物理学をしたいが、そのようなこの記事ではAMDによって想定されるようなときソリューションが利用可能になることに注意している場合(彼ら絶対にのでしょうが、彼らは)まだここにいないよ、あなたは不快な選択に直面することになります:

1)潜在的に

悪い方法であなたのゲームのダイナミクスを変え、(新しいクロスプラットフォームのハードウェアアクセラレーション物理エンジンの名前を挿入)を使用して、あなたのエンジンを書き換えます

2)全体AMDユーザーを無視し、唯一のPhysXを使用し続ける

3)AMDのGPU上で動作するようにPhysXを取得しよう(BLECH ...)

ほかにフォールバックとしてCPUの物理エンジンを使用して(2回仕事をしているし、同じ動作をしていない2基のエンジンを生産)のDavidのアイデアからあなたの唯一の他のオプションは、純粋なCPUの物理学を使用することです。

しかし、OpenCLのようなものが主流になると我々はそれを組み込むために始めODE /弾丸/親族が表示される場合があり... IOWあなたが(おそらく最終的になります)のためのGPUアクセラレーションを得る可能性がありますODE /弾丸/親族で今それをコーディングした場合(あなたのコードに変更なし)の後に「自由」。それはまだGPUバージョン(理由はバタフライ効果と浮動小数点の実装の違いの避けられない問題)で、わずかに異なる動作をするだろうが、少なくとも、あなたはODE /弾丸/血縁共同体はそのギャップを減らすためにあなたと一緒に作業していますます。

それは私のお勧めです。現在、CPUを使用するオープンソースの物理ライブラリを使用し、それはOpenCLの、CUDA経由のGPUを利用するのを待つ、ATIのストリームの言語、それが起こるときなどパフォーマンスが高速に叫んされ、あなたが自分自身の頭痛の種を保存します。

将来GFXカードの仮想的な利点は、すべてが順調と良いですが、あまりにも余分なCPUコアからの将来の利益があるでしょう。あなたは将来GFXカードは常にあなたの物理学のための予備の容量を持っていることを確認することができますか?

しかし、おそらく最高の理由は、この場合は少し漠然としたとはいえ、パフォーマンスがすべてではないということです。任意のサードパーティのライブラリと同じように、あなたがこの先何年もの間そのコードをサポートしてアップグレードする必要があるかもしれない、とあなたはインタフェースが合理的であることを確認するつもりだ、ドキュメントが良いですが、それはあなたの能力を持っています必要になります。

があり、また、このような、より安定した方程式の解決などを提供するいくつかのAPIとして、より数学の問題かもしれないが、私は専門家にその上のコメントを残しておきます。

私はのODE のを使用して、今、のPhysXののを使用しています。 のPhysXののは、簡単にシーンを構築し、(私の個人的な意見)は、より現実的なようで行い、ただし、のPhysXののための適切な文書はありません。実際にはほとんどのドキュメントですべて。一方、のODE は、オープンソースであるとドキュメント、チュートリアルなどがたくさんあります PS:GPUのaccelarationを使用すると、大幅に私と私の同僚を支援しています。私たちは、のAPEX の破壊とを使用しているのPhysXのの粒子ます。

のPhysXは非nVidiaカードと連携し、それだけで加速されません。他のエンジンを始めることです同じ位置にそれを残します。あなたは、ハードウェアの物理アクセラレーションでのみ実行可能である物理シミュレーションを持っている場合は問題がある。

すべてのコードが大量にparalelizableであれば、それのために行く!

他のすべてのために、GPUははなはだ不十分である。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top