チュートリアル: Direct3D 11 の深度バッファーを使ったシャドウ ボリュームの実装
このチュートリアルでは、すべての Direct3D 機能レベルのデバイスで Direct3D 11 を使い、深度マップを利用してシャドウ ボリュームをレンダリングする方法について説明します。
トピック | 説明 |
---|---|
シャドウ ボリュームの深度のテストをサポートするために必要な Direct3D デバイス リソースを作成する方法について説明します。 |
|
ライトの視点からレンダリングして、シャドウ ボリュームを表す 2 次元の深度マップを作成します。 |
|
シャドウ効果を作成するには、頂点 (またはジオメトリ) シェーダーとピクセル シェーダーに深度のテストを追加します。 |
|
より高速なデバイスでは高品質なシャドウを、性能が低いデバイスではよりすばやいシャドウをレンダリングします。 |
Direct3D 9 デスクトップに対するシャドウ マップの適用の移植
Windows 8 で、機能レベル 9_1 と 9_3 に深度の比較機能が追加されました。 シャドウ ボリュームを含むレンダリング コードを DirectX 11 に移行できるようになりました。Direct3D 11 レンダラーは機能レベル 9 のデバイスと下位互換性を持ちます。 このチュートリアルでは、Direct3D 11 のアプリやゲームで深度のテストを使って従来のシャドウ ボリュームを実装する方法を説明します。 コードは次のプロセスに対応しています。
- シャドウ マッピング用の Direct3D デバイス リソースを作成する。
- レンダリング パスを追加して深度マップを作成する。
- 深度のテストをメイン レンダリング パスに渡す。
- 必要なシェーダー コードを実行する。
- 下位レベル ハードウェアでのレンダリングを高速化するためのオプション。
このチュートリアルを終了すると、機能レベル 9_1 以上と互換性のある Direct3D 11 で互換性のある基本的なシャドウ ボリュームの手法を実装する方法を理解できます。
前提条件
ユニバーサル Windows プラットフォーム (UWP) DirectX ゲームの開発環境を準備する必要があります。 テンプレートはまだ必要ありませんが、このチュートリアルのコード サンプルをビルドするために Microsoft Visual Studio 2015 が必要です。
関連トピック
Direct3D
シャドウ マッピングに関する技術記事
フィードバック
https://aka.ms/ContentUserFeedback」を参照してください。
以下は間もなく提供いたします。2024 年を通じて、コンテンツのフィードバック メカニズムとして GitHub の issue を段階的に廃止し、新しいフィードバック システムに置き換えます。 詳細については、「フィードバックの送信と表示