Cube Map サンプル
Cube Map サンプル
説明
Cube Map サンプルでは、キューブ マッピングと呼ばれる環境マッピングの手法を示す。環境マッピングは、3D オブジェクトの周囲の環境 (ライトなど) をテクスチャ マップに配置し、時間のかかるライティングの計算を行わずに複雑なライティング エフェクトをオブジェクトに適用できる手法である。
環境マッピングの手法 (キューブ マッピングや射影テクスチャなど) の一部の機能しかサポートしていないカードもある。環境マッピングの詳細については、「環境マッピング」を参照すること。
パス
ソース ファイル : (SDK ルート)\Samples\C++\Direct3D\EnvMapping\CubeMap
実行可能ファイル : (SDK ルート)\Samples\C++\Direct3D\Bin
ユーザーズ ガイド
次の表は、実装されているキーを示している。メニュー コマンドを使って同じ操作を行うことができる。
キー | 動作 |
---|---|
Enter | シーンを開始および停止する。 |
Space キー | シーンを少しずつ進める。 |
F2 | 新しいレンダリング デバイスまたはディスプレイ モードを選択するようユーザーに指示する。 |
Alt+Enter | フルスクリーン モードとウィンドウ モードを切り替える。 |
Esc | アプリケーションを終了する。 |
プログラミング上の注意
キューブ マッピングは、6 面のテクスチャを使用する手法である。この手法の効果を想像するには、壁紙が張られた部屋にある、壁紙で縮小ラップされたオブジェクトを考えてみるとよい。キューブ マッピングは球体マッピングよりも優れている。これは、球体マッピングが本質的に視点に依存するからである (球体マップは特定の視点を念頭に置いて作成される)。また、キューブ マップではジオメトリの歪みが生じないので、キューブ マップの 6 面すべてについて、IDirect3DDevice9::SetRenderTarget を使ってその場で生成できる。
キューブ マッピングは、Microsoft® Direct3D® のテクスチャ座標生成でも使用できる。D3DTSS_TCI_CAMERASPACEREFLECTIONVECTOR を設定することによって、Direct3D は頂点の反射ベクトルからキューブ マップのテクスチャ座標を生成するので、この手法を使うと、環境がオブジェクトで反射される場合の環境マッピング エフェクトを容易に作成できる。
このサンプルでは、ヘルパー関数などのプログラミング要素から構成される共通の Microsoft DirectX® コードを使っている。このコードは DirectX ソフトウェア開発キット (SDK) の他のサンプルと共有されている。サンプル フレームワークのヘッダーは (SDK ルート)\Samples\C++\Common\Include、ソース コードは (SDK ルート)\Samples\C++\Common\Src にある。