D3DImage チュートリアル ⓪ はじめに
D3DImageは.NET Framework 3.5 SP1からサポートされた機能で、Direct3D のレンダーターゲット(Direct3DSurface9)をWPFのImageSourceとして扱うことができます。
D3DImageを使ったサンプルとして、CodeProjectのIntroduction to D3DImageと、MSDNのチュートリアル「WPFでのDirect3Dコンテンツのホスト」および「WPFでホストするためのDirect3D9コンテンツの作成」があります。これらのサンプルでは、P/Invoke(DLLImport属性)を使ってアンマネージ アセンブリを利用しています。
本チュートリアルでは、C++/CLIを使ってネイティブコードのラッパーを作成し、コンパイラスイッチ(/clr)でネイティブ アセンブリを混合アセンブリにコンバートします。この手法を使うと、アンマネージ アセンブリを使うのに比べ、Visual Studioの中でマネージ プロジェクトと同じようにアンマネージ コードが扱えるので、ビルドやデバッグが簡単になります。
DirectX Sample Browser から Direct3D 9のチュートリアル(Tutorial 6: Meshes)をインストールして、その描画結果を WPF の D3DImage を使って表示し、WPF から Direct3D のレンダリングを制御するまでを紹介します。
このチュートリアルには以下の製品が必要です。
- Visual Studio 2008 SP1
- 最新の DirectX SDK
アジェンダは以下のとおりです。
- プロジェクトの作成
- 混合アセンブリへの変換
- C++コードの編集
- WPFプロジェクトの編集
- XAMLの編集
- C#の編集
- UIと制御の追加
完成した Visual Studio ソリューションを添付します。ダウンロードして、ビルドしてみてください。

Comments
Anonymous comments are disabled
About hiroyuk
マイクロソフト㈱エバンジェリスト。北海道大学理学部物理学科卒。リアルタイム3Dグラフィックスを専門とし、グラフィックスやシェーダに関する技術文章を執筆・講演。 DirectX SDK日本語ドキュメントの開発に携わるとともに、Windows Presentation Foundation プログラミング(オーム社)、Game Programming Gemsシリーズ、リアルタイム レンダリング第2版(ボーンデジタル)、Texturing & Modeling, A Procedural Approach などを翻訳・監修、XAMLプログラミング(ソフトバンク クリエイティブ)を執筆。趣味は薪割り。