0

私はすでに科学計算についてこの質問をしており、このフォーラムが代替案を提供できるかどうか疑問に思っています。

ソフト ボディの変形を受ける多数のエージェントの動きをシミュレートする必要があります。エージェントの動きを制御するプロセスは複雑であるため、プロセス全体を並列化する必要があります。

シミュレーションは 3D で視覚化する必要があります。このシミュレーションを多くの異なるノード (MPI または MPI+GPGPU) で実行するので、ビジュアライゼーションをリアルタイムで実行するのではなく、シミュレーションが終了した後にビデオ ファイルを出力する必要があります。

(私は素晴らしい AAA ビデオ ゲーム品質のグラフィックスを探しているわけではありません。さらに、動作コードは十分な CPU 時間を消費するため、重いレンダリング コードを追加してアプリケーションをさらに遅くしたくありません)

このようなビデオを作成するには、次の 3 つの方法があると思います。

  • 生のピクセル情報を BMP に書き込み、それらをつなぎ合わせます。これを 2D で行いましたが、3D でどのように機能するかわかりません.....
  • 画面ではなくバッファにレンダリングする、OpenGL/Direct3D のオフライン アナログを使用します。
  • ある種のテレメトリ データをファイルに書き込み、時間間隔ごとに各エージェントの位置、変形などを示し、シミュレーションが終了したら、それを OpenGL/Direct3D プログラムへの入力として使用します。

この問題は以前に解決されているに違いありません - HPC には多くの可視化があります

要約すると、パフォーマンスに大きな影響を与えることなく、オフラインでビデオを簡単にレンダリングするにはどうすればよいでしょうか (トイ ストーリーではなく非常に基本的なグラフィックス - 3D ブロブが必要なだけです)。

4

1 に答える 1

1

私の考えは、頂点のさまざまな状態/位置を頂点アニメーションの単一フレームとして適切なファイル形式で保存することです。適切な形式はCOLLADAです。これは、XML に基づく 3D シーンの中間形式であるため、汎用 XML ライブラリで簡単に解析して書き込むことができます。COLLADA DOMpycolladaなどの COLLADA 専用のライブラリもあります。頂点アニメーションを含む COLLADA ファイルは、選択したレンダリング ソフトウェア (3D Studio Max、Blender、Maya ...) を使用してビデオ ファイルに直接レンダリングできます。

于 2012-11-12T22:36:13.213 に答える