Microsoft DirectX 8.0 (C++)

CubeMap サンプル

説明

CubeMap サンプルでは、キューブ マッピングと呼ばれる環境マッピングの手法を示す。環境マッピングは、3D オブジェクトの周囲の環境 (ライトなど) をテクスチャ マップに配置し、ライティングの計算を行わずにオブジェクトに複雑なライティング エフェクトを適用できる手法である。

環境マッピングの手法 (キューブ マッピングや射影テクスチャなど) の一部の機能しかサポートしていないカードもある。環境マッピング、キューブ マッピング、および射影テクスチャの詳細については、Microsoft® DirectX® SDK のマニュアルを参照すること。

パス

ソース :(SDK ルート)\Samples\Multimedia\Direct3D\EnvMapping\CubeMap

実行可能ファイル :(SDK ルート)\Samples\Multimedia\Direct3D\Bin

ユーザーズ ガイド

次の表は実装されているキーを示している。メニュー コマンドを使って同じ操作を行うことができる。

キー アクション
Enter シーンを開始および停止する。
Space シーンを少しずつ進める。
F2 新しいレンダリング デバイスまたはディスプレイ モードを選択するようユーザーに指示する。
Alt + Enter フルスクリーン モードとウィンドウ モードを切り替える。
Esc アプリケーションを終了する。

プログラミング上の注意

キューブ マッピングは、6 面のテクスチャを使用する手法である。この手法のエフェクトを視覚化するには、壁紙を貼った部屋にある、壁紙で縮小ラップされたオブジェクトを考えてみるとよい。キューブ マッピングは球体マッピングよりも優れている。これは、球体マッピングが本質的にビューに依存するからである (球体マップは特定の視点を念頭に置いて作成される)。また、キューブ マップではジオメトリの歪みが生じないので、キューブ マップの 6 面すべてについて、IDirect3DDevice8::SetRenderTarget を使ってその場で生成できる。

キューブ マッピングは、Microsoft Direct3D® のテクスチャ座標生成でも使用できる。D3DTSS_TCI_CAMERASPACEREFLECTIONVECTOR を設定することによって、Direct3D は頂点の反射ベクトルからキューブ マップのテクスチャ座標を生成するので、この手法を使うと、環境がオブジェクトで反射される場合の環境マッピング エフェクトを容易に作成できる。

このサンプルでは、ヘルパー関数などのプログラミング要素から構成される共通の DirectX コードを使用している。このコードは DirectX SDK のほかのサンプルと共有されている。共通のヘッダーおよびソース コードは、(SDK ルート)\Samples\Multimedia\Common にある。