Microsoft DirectX 8.0 (C++) |
ClipMirror サンプルでは、独自に定義したクリップ面の使い方を示す。3D シーンは通常どおりレンダリングされ、2 回目のパスで平面の鏡に反射されたようにレンダリングされる。クリップ面は、反射されたシーンを鏡のエッジで切り取るために使用する。
ソース :(SDK ルート)\Samples\Multimedia\Direct3D\ClipMirror
実行可能ファイル :(SDK ルート)\Samples\Multimedia\Direct3D\Bin
次の表は実装されているキーを示している。メニュー コマンドを使って同じ操作を行うことができる。
キー | アクション |
---|---|
Enter | シーンを開始および停止する。 |
Space | シーンを少しずつ進める。 |
F2 | 新しいレンダリング デバイスまたはディスプレイ モードを選択するようユーザーに指示する。 |
Alt + Enter | フルスクリーン モードとウィンドウ モードを切り替える。 |
Esc | アプリケーションを終了する。 |
このサンプルでは、マウスを使って視点の位置を制御できる。
このサンプルの主な特徴は、クリップ面の使い方である。矩形の鏡には 4 つのエッジがあるので、4 つのクリップ面が使用される。各クリップ面は、視点と鏡の 1 つのエッジの 2 つの頂点によって定義される。クリップ面を配置すると、ビュー行列は鏡の平面で反射され、シーンのジオメトリ (ティーポット オブジェクト) は通常どおりレンダリングできる。その後、鏡自体を表す半透明の矩形が描画される。
このサンプルでは、ヘルパー関数などのプログラミング要素から構成される共通の DirectX コードを使用している。このコードは DirectX SDK のほかのサンプルと共有されている。共通のヘッダーおよびソース コードは、(SDK ルート)\Samples\Multimedia\Common にある。