チュートリアル: DirectX 11 とユニバーサル Windows プラットフォーム (UWP) への簡単な Direct3D 9 アプリの移植

この移植作業では、Direct3D 9 から Direct3D 11 とユニバーサル Windows プラットフォーム (UWP) に簡単なレンダリング フレームワークを移植する方法について説明します。

トピック 説明

Direct3D 11 の初期化

Direct3D デバイスとデバイス コンテキストへのハンドルを取得する方法や、DXGI を使ってスワップ チェーンを設定する方法など、Direct3D 9 の初期化コードを Direct3D 11 に変換する方法について説明します。

レンダリング フレームワークの変換

ジオメトリ バッファーを移植する方法、HLSL シェーダー プログラムをコンパイルして読み込む方法、Direct3D 11 のレンダリング チェーンを実装する方法など、Direct3D 9 の簡単なレンダリング フレームワークを Direct3D 11 に変換する方法について説明します。

ゲーム ループの移植

IFrameworkView を作成して、全画面表示の CoreWindow を制御する方法など、UWP ゲームのウィンドウを実装する方法とゲーム ループを移植する方法について説明します。

 

このトピックでは、頂点シェーディングされた回転する立方体を表示する同じ基本的なグラフィックス タスクを実行する 2 つのコード パスについて説明します。 どちらの場合も、コードは次のプロセスに対応しています。

  1. Direct3D デバイスとスワップ チェーンを作成する。
  2. カラフルな立方体のメッシュを表す頂点バッファーとインデックス バッファーを作成する。
  3. 頂点を画面領域に変換する頂点シェーダーと、色値をブレンドするピクセル シェーダーを作成し、シェーダーをコンパイルして、シェーダーを Direct3D リソースとして読み込む。
  4. レンダリング チェーンを実装し、描画された立方体を画面に表示する。
  5. ウィンドウを作成し、メイン ループを開始して、ウィンドウ メッセージの処理に対応する。

このチュートリアルを終了すると、Direct3D 9 と Direct3D 11 の次の基本的な違いを理解できます。

  • デバイス、デバイス コンテキスト、グラフィックス インフラストラクチャの分離。
  • シェーダーをコンパイルし、実行時にシェーダーのバイトコードを読み込むプロセス。
  • 入力アセンブラー (IA) ステージの頂点ごとのデータを構成する方法。
  • IFrameworkView を使って CoreWindow ビューを作成する方法。

このチュートリアルでは、簡素化のため CoreWindow を使用しており、XAML の相互運用には対応しない点に注意してください。

前提条件

UWP DirectX ゲームの開発環境を準備する必要があります。 テンプレートはまだ必要ありませんが、このチュートリアルのコード サンプルを読み込むには Microsoft Visual Studio 2015 が必要です。

このチュートリアルで説明する DirectX 11 と UWP のプログラミングの概念について詳しくは、「DirectX 9 からの DirectX 11 と Windows ストアへの移行」をご覧ください。

Direct3D

Microsoft Store