.NET 3D グラフィックス プログラミングを行うための推奨されるアプローチはどれですか。現在のテクノロジは Direct3D または XNA のようですが、ゲーム以外のプログラミングにはどちらが最適ですか?
また、Managed Direct 3D は廃止されましたか? XNA は、ゲーム以外の開発にはあまり適していないようです。
残念ながら、MS は MDX を廃止しました。私は現在、ゲーム以外の開発にSlimDXを使用しています。これは MDX のドロップイン代替品ではありませんが、少なくとも API 設計は MDX v1.1 の API と比較して非常に直感的です。製品のバージョン 1 には MDX v1.1 + .Net v1.1 を使用しました。バージョン 2 については、.Net 2.0 に移行しています。MDX v1.1 は .Net 2.0 ではうまく機能しません。さらに、他にもかなりの問題があります。したがって、代替案を探す必要がありました。
最初は XNA が最良の選択でした。その後、ゲーム市場と xbox 360 との互換性をターゲットにしているため、それを機能させるには多くの回避策/ハックを作成する必要があることがわかりました。さらに悪いのは、製品で広く使用されている DirectShow との相互運用性です。MS は、既存のテクノロジと新しいテクノロジの間に大きなギャップを作りました。MDX と DirectShow の最新の代替品は、現時点では古いものを置き換えるほど強力ではなく、次のバージョンを待つ余裕はありません。
SlimDX がゲーム以外の開発に最適であるとは言えません。しかし、私の場合はそうです。また、オープンソースであるため、必要に応じていつでも変更を加えることができます。SlimxDX + DirectShow.Net を使用すると、かなりの不具合が発生します。MDX 1.1 + DirectShow.Net を使用している場合、これらの不具合は存在しません。私の推測では、内部的に、MS はそれを機能させるためにかなりのハックを入れました。
とにかく、DirectShow をまったく使用していない場合は、Ogre3D/MOgre3Dを検討してください。MOgre3D は、うまく構築された 3D エンジンである Ogre3D のマネージド ラッパーです。第一希望でしたが、DirectShowに対応していないので使えません。
Managed DirectXは、XNAとして書き直されたため、それほど放棄されていませんでした。確かに、XNAはXbox 360を念頭に置いて設計されていますが、XNAは、私が使用した他の3Dフレームワークと同様に、ゲーム以外の3Dプログラミングに使用するのに適しています。XNAの非常に便利なコンテンツインポートパイプラインを見落とさないでください...モデルとシェーダーをカードに取り込み、レンダリングを非常に簡単に行うことができます。
上で述べたように、クリエーターズクラブコミュニティは非常に豊富であり、彼らのWinformsチュートリアルはおそらくあなたの興味を引くでしょう。
それがゲームに関連していない場合、それは何についてですか? これに答えてくれれば良い答えが返ってくるかもしれませんが、アプリケーションによっては WPF が良い答えかもしれません。
Xna は Microsoft の Managed DirectX です。残念ながら、彼らはそれをゲームに関係のないものに使用することについてあまり書いていませんが、それは可能です.
残念ながら、現在これを行う方法を示す適切なリソースをオンラインで見つけることができません。
とにかく私は専門家ではありませんが、両方をいじってみると、XNAの方が優れていることがわかりました。Zune と PC ゲームでふざけているだけです。DirectX をいじるのに十分な時間がなかったので、XNA の例をさらに見つけました。
また、コミュニティ全体があなたを助けてくれます。