2011-10-17 8 views
3

私はプリミティブの数十3Dアニメーション - WPFやXNA

enter image description here

の3Dアニメーションを作成したいと思いますが、私は、各原子の初期位置を読み、他のパラメータと私はアニメーションを描画する必要があります順序を記述する私はすべての角度を見て、色とアルファチャンネルを操作する必要があります。

すべてでは、WPF 3DまたはXNAに絞り込まれます。

私はそれを知っているし、それがアプリにテキストボックスを追加する方がはるかに簡単な方法ですので、私は、WPFを選ぶだろう。 しかし、私はWPFがアニメーションを処理しないか、余分なビットを追加する必要がある場合は問題になると思います。

どれが良いですか?データ構造を管理し、アニメーションを描画する方法の例を教えてください。 (私は3Dアニメーションを初めて使用しています)

EDIT: ここでコードとアプリケーションhttp://alloysvisualisation.codeplex.com/に興味があれば、私はModel3DGroupを使用してGeometryModel3Dからモードを作成します。その結果、パフォーマンスはかなり良いです。

答えて

5

私たちは、3Dは、私が現在働いているプロジェクトにレンダリングするためのWPFとXNAの両方を使用します。 XNAのものはWPFアプリケーション内から使用されるので、これらの2つを組み合わせても問題はありません。

私はそれはあなたを与える抽象化を好むので、あなたは、単純なシーンを持っている場合、私は3DレンダリングのためのWPFを使用します。シーンにオブジェクトを追加するだけで、カメラとライトを設定し、残りはあなたのために処理されます。私たちは、パフォーマンス上の問題がなく最大〜500シリンダを含むビジュアルエディタにWPFを使用します。私たちが持っていたパフォーマンスの問題の1つは、シーンにオブジェクトを追加/削除するのに時間がかかるということです。だからWPFはそれがあなたがたくさんする必要があるものならば、良いフィットではありません。

あなたはより多くの複雑なニーズを持っている場合、またはアプリケーションがパフォーマンス重要である場合しかし、私は金属に近づくためにXNAとなるだろう。これは、より古典的な、OpenGLのようなレンダリング手法を提供します。

は、要約すると:

WPFを:シンプル

  • ニースの抽象化
  • [OK]を、パフォーマンス全体の
  • 悪いパフォーマンスを使用する/削除するオブジェクト
を追加するとき

XNA:あなたは両方のWinFormsやWPF

Aとその

  • 作品に使用されている場合
  • 良いパフォーマンス
  • がよりOpenGLのように感じた金属の近くに

    • 私たちが物事のWPF側で使ったリソースは、件名にはCharles Petzold's writingsです。現在、彼の図書館のものを使用しています。すぐに開始されましたが、いくつかの問題がありましたので、いくつか注意してください。しかし、彼のサイトにあるものは見ておく価値がある。

  • +0

    500本のシリンダーは静止していましたか? –

    +0

    さて、オブジェクトを追加したり削除したりできますが、おそらく10-20個のオブジェクトが追加/削除されます。数百のアイテムを追加/削除するのは私たちが望む時間よりも長いので、シーンを開くのは速くはありません。 –

    2

    XNAは3D側面のより容易なデバッグを提供します。

    あなたは、Windowsフォームの形でXNAをホストするためにして、ドロップダウンやボタンなどのすべてのおなじみのコントロールが正常に動作し、XNAと相互作用するのWinFormsの例に従うことができます。

    +0

    カメラなどでn個のオブジェクトを描画するためのアプリの構造の良い例はありますか? –

    3

    XNA + WPFが解決策です。この記事では、プロセスをガイドします。http://www.codeproject.com/Articles/38301/XNA-integration-inside-WPF

    Definetely XNAは、広範な3D作業に迅速かつ便利です。 WPFは3Dにとっては問題ありませんが、XNAはデバッグが簡単で、追加のアルファブレンディングやCameraオブジェクトなどのいくつかの素敵な機能を提供します。また、あなたの仕事をサポートする良いライブラリを見つけることができます。

    わからない場合は、間違いなくXNAオブジェクトを使用してグラフィックスを描画する必要があります。 WPFはボタンとテキストを提供しますが、これはXNAの痛みです。

    関連する問題