Microsoft DirectX 8.0 (C++) |
ProgressiveMesh サンプルでは、D3DX メッシュ ユーティリティ関数を使って、ファイル ベースのメッシュをロードして最適化する方法を示す。プログレッシブ メッシュでは、頂点情報が特殊なツリーに保存され、任意の数の頂点を指定してメッシュをレンダリングするためにアクセスできる。この処理は高速なので、プログレッシブ メッシュは、遠くにあるオブジェクトが少ないポリゴンでレンダリングされる詳細レベルを使用する場合に適している。
D3DX の詳細については、Microsoft® DirectX® SDK のマニュアルを参照すること。
ソース :(SDK ルート)\Samples\Multimedia\Direct3D\ProgressiveMesh
実行可能ファイル :(SDK ルート)\Samples\Multimedia\Direct3D\Bin
次の表は実装されているキーを示している。メニュー コマンドを使って同じ操作を行うことができる。
キー | アクション |
---|---|
Enter | シーンを開始および停止する。 |
Space | シーンを少しずつ進める。 |
F1 | ヘルプまたは使用可能なコマンドを表示する。 |
F2 | 新しいレンダリング デバイスまたはディスプレイ モードを選択するようユーザーに指示する。 |
Alt + Enter | フルスクリーン モードとウィンドウ モードを切り替える。 |
Esc | アプリケーションを終了する。 |
↑ | プログレッシブ メッシュに頂点を 1 つ追加する。 |
↓ | プログレッシブ メッシュから頂点を 1 つ減らす。 |
PageUp | プログレッシブ メッシュに頂点を 100 個追加する。 |
PageDown | プログレッシブ メッシュから頂点を 100 個減らす。 |
Home | プログレッシブ メッシュに使用可能な頂点をすべて表示する。 |
End | プログレッシブ メッシュの最低限の頂点を表示する。 |
DirectX SDK に含まれる多くの Microsoft Direct3D® のサンプルでは、ファイル ベースのメッシュが使用されている。ProgressiveMesh サンプルは、メッシュをロードするのに必要な基本的なコードの良い例である。D3DX メッシュ ロード機能は、.x ファイルのフレーム階層を 1 つのメッシュにまとめる。
プログレッシブ メッシュを使用する第 1 の理由は、メッシュについて ID3DXPMesh::SetNumVertices を呼び出すことである。
ほかのサンプルでは、基本的な D3DX メッシュ機能は共通クラス CD3DMesh にラップされている。フレーム階層を保持する場合は、共通クラス CD3DFile を使用できる。
このサンプルでは、ヘルパー関数などのプログラミング要素から構成される共通の DirectX コードを使用している。このコードは DirectX SDK のほかのサンプルと共有されている。共通のヘッダーおよびソース コードは、(SDK ルート)\Samples\Multimedia\Common にある。