6

(視覚的に魅力的な)3D物理シミュレーション/視覚化用のPythonプログラムを作成するための優れたライブラリは何ですか?

私はVpythonを見てきましたが、私が見たシミュレーションは見苦しく見えます。視覚的に魅力的なものにしたいと思います。また、古い図書館のように見えます。3Dプログラミングについては、Panda3Dpython-ogreを使用する提案を見てきましたが、それが正確なシミュレーションに本当に適しているかどうかはわかりません。また、他のライブラリとうまく結合するライブラリを好みます(たとえば、pygameは他のライブラリとうまく結合しません)。

4

4 に答える 4

4

Pythonの3Dサポートは他の言語に比べてかなり弱いですが、それらのほとんどが構築されている方法で、プログラムの外観はあなたが思っているよりもはるかに変更可能です。たとえば、Vpythonについて話しましたが、それらの例の多くは視覚的に魅力的ではありませんが、それらのほとんどは以前のリリースのものでもあります。最新のリリースには、押し出し、マテリアル、スキンの両方が含まれているため、外観をカスタマイズすることができます。前。

おそらく、リアルタイムでレンダリング品質の画像を作成することは不可能であることも注目に値します(サイクルはその方向への大きな一歩ですが、まだ完全にはありません)。ここでのあなたの問題のほとんどは、テクノロジーでは現在不可能なものを探していることだと思いますが、シミュレーションを視覚的に魅力的に見せるための負担を引き受けても構わないと思っているのであれば、Vpython( PyOpenGL)はおそらくあなたの最善の策です。以下は、より一般的なものを探している場合に備えて、さまざまなテクノロジーの概要です。

Blender:利用可能な最も強力なPythonグラフィックプログラムですが、グラフィックデザインと特殊効果のために作られていますが、その下で非常に複雑な物理学が実行されていますが、Blenderは物理学シミュレーション用には作られていません。自己完結型。

Panda3D:Blenderと比較されることが非常に多いプログラムですが、ほとんどの場合ゲームに役立ちます。ゲームエンジンはBlenderよりも使いやすいですが、機能が豊富であるため、レンダリング品質ははるかに低くなります。自己完結型

Ogre:当時のゲーム開発で非常に人気があり、特にゲーム環境の作成に多くの強力な機能を備えたライブラリ。イベント処理も非常によく実装されています。他のライブラリと統合することはできますが、困難です。

VPython:他の方法と比較してテクスチャマッピングとレンダリング能力の多くを取り除く物理シミュレーション用のライブラリですが、VPythonは主にOpenGLから構築されているため、この機能はまだあります。これは、周りで最も用途の広いグラフィックライブラリの1つです。 。そのため、VPythonは他のライブラリとの統合も非常に簡単です。

PyOpenGL:Python用のOpenGL。OpenGLは最も広く使用されているグラフィックライブラリの1つであり、間違いなくこのリストで最も優れたビジュアルのいくつかを生成できます(独自のクラスであるBlenderを除く)が、そうするのは簡単ではありません。 。PyOpenGLは非常に骨の折れるものであり、機能はありますが、他の何よりも実装が難しくなります。他のライブラリと非常にうまく機能しますが、自分が何をしているかを知っている場合に限ります。

于 2012-06-02T04:49:04.417 に答える
2

PyOpenGLを試してください。これは、Pythonctypesライブラリを介してOpenGLへのPythonバインディングを提供するライブラリです。

これのデモは次のとおりです。

PyOpenGL野球デモ

于 2012-05-07T21:53:13.797 に答える
2

Pythonの視覚化パッケージが必要な場合は、Processing.pyから始めます: https ://github.com/jdf/processing.py

これは、JavaベースのProcessing.orgコードのPythonバインディングです。簡単な比較はここで見つけることができます: http ://wiki.processing.org/w/Python_Comparison

もちろん、Pythonに制約されていない場合は、Processing自体も出発点として適しています:http: //processing.org

Visualization Toolkit(VTK)用のPythonバインディングもありますが、それらの例のほとんどはC++またはTkです。

探しているのがネイティブvisではなくジオメトリを移動するシーングラフだけである場合、Open SceneGraph用のPythonバインディングをいくつか見ました。例:http ://code.google.com/p/osgswig/

幸運を!

于 2012-05-08T17:30:05.967 に答える
0

あなたの質問から、あなたが何を達成したいのかは明確ではありません。実行時にシミュレーションを制御するために使用できるスタンドアロンアプリケーションを作成しますか、それともオフラインで表示できるPythonを使用してシミュレーションを作成しますか?

後者については、アプリケーションの内部のほとんど(すべてではないにしても)へのアクセスを提供するPythonスクリプトインターフェイスを含むオープンソースの3Dコンテンツ作成スイートであるBlenderを見ることができます。Blenderにはいくつかの物理学と粒子ライブラリが付属しており、これらは有用である可能性があり、アプリケーションとして、フィルムなどの視覚効果を作成するために使用されるソフトウェアのタイプを示します。

実行時にシミュレーションを制御するスタンドアロンアプリケーションを作成する場合、これはおそらく適切なオプションではありません。ただし、一連の表示可能な画像を作成する場合は、一見の価値があります。

于 2012-05-07T23:59:21.253 に答える