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

アジェンダは以下のとおりです。

  1. プロジェクトの作成
  2. 混合アセンブリへの変換
  3. C++コードの編集
  4. WPFプロジェクトの編集
  5. XAMLの編集
  6. C#の編集
  7. UIと制御の追加

完成した Visual Studio ソリューションを添付します。ダウンロードして、ビルドしてみてください。

D3DimageTutorial

D3DImageTutorial.zip