Microsoft DirectX 8.0 (C++)

Billboard サンプル

説明

Billboard サンプルでは、ビルボーディングの手法を示している。ポリゴン数の多い木のモデルなど、複雑な 3D モデルをレンダリングする代わりに、モデルの 2D イメージをレンダリングし、常に視点に向くように回転させる。この手法は、木、雲、煙、爆発などをレンダリングするために、一般的に使用される。詳細については、「ビルボーディング」を参照すること。

このサンプルでは、カメラは木で覆われた丘の 3D シーンを飛行する。木は 3D オブジェクトのように見えるが、実際には、視点に向かって回転する 2D ビルボード イメージである。丘の地形およびスカイボックス (空のテクスチャを含む立方体) は、.x ファイルからロードされるオブジェクトである。これらは視覚効果のために使用され、ビルボーディング手法とは無関係である。

パス

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

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

ユーザーズ ガイド

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

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

プログラミング上の注意

このサンプルでは、ビルボーディング手法に重点を置いている。カメラは各フレームで移動し、それに従って視点も変化する。視点が変化すると、ビルボードが新しい視点の方を向くように、y 軸に沿ってビルボードを回転させる回転行列が生成される。ビルボード行列の計算は FrameMove 関数で行われる。ビルボードには通常透明なピクセルが含まれているので、適切なアルファ ブレンディングを行うために、木もこの関数に格納される。木は、DrawTrees 関数で頂点バッファからレンダリングされる。

このサンプルのビルボードは、y 軸に沿ってのみ回転するように制限されている。このようにしないと、木の幹が地面に固定されていないように見える。3D フライト シミュレータやスペース シューティング ゲームの爆発などの効果では、ビルボードは通常 1 つの軸に制約されない。

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