ID3DXPMesh::Optimize
メッシュの面および頂点の順番変更を制御し、パフォーマンスを最適化して、出力メッシュを生成する。
HRESULT Optimize(
DWORD Flags,
DWORD* pAdjacencyOut,
DWORD* pFaceRemap,
LPD3DXBUFFER* ppVertexRemap,
LPD3DXMESH* ppOptMesh
);
パラメータ
- Flags
- [in] 実行する最適化の種類を指定する、1 つ以上のフラグの組み合わせ。次のフラグが定義されている。
- D3DXMESHOPT_ATTRSORT
- 属性バンドル ステートの変更を少なくし、ID3DXBaseMesh::DrawSubset のパフォーマンスを強化するため、面の順番を変更して最適化を行う。
- D3DXMESHOPT_COMPACT
- 面の順番を変更し、使用されていない頂点と綿を削除する。
- D3DXMESHOPT_IGNOREVERTS
- 面のみを最適化し、頂点は最適化しない。
- D3DXMESHOPT_SHAREVB
- 頂点バッファを共有する。
- D3DXMESHOPT_STRIPREORDER
- 面の順番を変更し、隣接する三角形の長さを最大にする。
- D3DXMESHOPT_VERTEXCACHE
- 面の順番を変更し、頂点キャッシュのキャッシュ ヒット率を向上させる。
最適化フラグの D3DXMESHOPT_STRIPREORDER および D3DXMESHOPT_VERTEXCACHE はそれぞれ相互に排他的である。
- pAdjacencyOut
- [out] 最適化されたメッシュの面隣接性配列に使用する転送先バッファへのポインタ。面隣接性は、配列の配列として格納される。最も内側の配列は、隣接する三角形の 3 つのインデックスで、外側の配列は、メッシュ内の三角形ごとの面隣接性の 1 セットである。この配列のサイズは、面の数の最大値に 3 を乗算したものである。
- pFaceRemap
- [out] 各面の新しいインデックスを格納している転送先バッファへのポインタ。
- ppVertexRemap
- [out] 各頂点の新しいインデックスを格納する、ID3DXBuffer インターフェイスへのポインタのアドレス。
- ppOptMesh
- [out] 最適化されたメッシュを表す、ID3DXMesh インターフェイスへのポインタのアドレス。
戻り値
成功した場合は、D3D_OK を返す。
失敗した場合は、次のいずれかの値を返す。
ヘッダー : D3dx8mesh.h で宣言。
インポート ライブラリ : D3dx8.lib を使用。