Platform SDK: DirectX

ShadowVol サンプル

[Visual Basic]

ここでは、C++ でのアプリケーション開発について説明する。Visual Basic については、「Direct3D 直接モード Visual Basic サンプル」を参照すること。

[C++]

説明

ShadowVol サンプルでは、シャドウ ボリュームを実装するためにステンシル バッファを作成および使用する方法を示す。シャドウ ボリュームを使用することで、任意の形のオブジェクトの影を、別の任意の形のオブジェクトにキャストすることができる。

パス

ソース ファイル :(SDK ルート)\Samples\Multimedia\D3dim\Src\ShadowVol

実行可能ファイル :(SDK ルート)\Samples\Multimedia\D3dim\Shadowvol.exe

ユーザーズ ガイド

このサンプルは、ステンシル バッファをサポートするデバイスでのみ実行できる。

利用可能なコマンドを調べるには、F1 キーを押すか、メニューから選択する。

プログラミング上の注意

シャドウ ボリュームは、かなり高度な技法である。

シャドウ ボリュームを作成するには

  1. シャドウ ボリュームを包含するポリゴンの面の集合を構築する。
  2. 次に、ステンシル バッファを使用して、シャドウ ボリュームの前面をレンダリングする。
  3. 続いて、ステンシル バッファをセット アップして、裏面のレンダリングを行うが、このとき、ステンシル バッファから値を差し引く。この後、ステンシル バッファにはキャストされた影のマスクが含まれる。
  4. ステンシル バッファをマスクとして使用し、大きな灰色または黒の矩形を描画すると、フレーム バッファは影によって更新される。