次の方法で共有


ID3DXMesh::Optimize メソッド

ID3DXMesh::Optimize メソッド

メッシュの面および頂点の順番変更を制御し、パフォーマンスを最適化して、出力メッシュを生成する。

構文

HRESULT Optimize(      
    DWORD Flags,
    CONST DWORD *pAdjacencyIn,
    DWORD *pAdjacencyOut,
    DWORD *pFaceRemap,
    LPD3DXBUFFER *ppVertexRemap,
    LPD3DXMESH *ppOptMesh
);

パラメータ

  • Flags
    [in] 実行する最適化の種類を指定する。このパラメータは、D3DXMESHOPT および D3DXMESH の 1 つまたは複数のフラグ (D3DXMESH32_BIT、D3DXMESH_IB_WRITEONLY、および D3DXMESH_WRITEONLY を除く) の組み合わせに設定できる。
  • pAdjacencyIn
    [in] 1 面あたりの 3 つの DWORD の配列へのポインタ。ソース メッシュに含まれる各面の 3 つの隣接面を指定する。エッジが隣接面を持たない場合の値は 0xffffffff である。
  • pAdjacencyOut
    [in, out] 最適化されたメッシュの面隣接性配列に使う転送先バッファへのポインタ。面隣接性は、配列の配列として格納される。最も内側の配列は、隣接する三角形の 3 つのインデックスで、外側の配列は、メッシュ内の三角形ごとの面隣接性の 1 セットである。
  • pFaceRemap
    [in, out] 各面の新しいインデックスを格納している転送先バッファへのポインタ。
  • ppVertexRemap
    [out] 各頂点の新しいインデックスを格納する、ID3DXBuffer インターフェイスへのポインタのアドレス。
  • ppOptMesh
    [out] 最適化されたメッシュを表す、ID3DXMesh インターフェイスへのポインタのアドレス。

戻り値

成功した場合は、D3D_OK を返す。

失敗した場合は、次のいずれかの値を返す。

D3DERR_INVALIDCALL メソッドの呼び出しが無効である。たとえば、メソッドのパラメータに無効な値が設定されている場合などである。
E_OUTOFMEMORY Microsoft® Direct3D® が呼び出しを完了するための十分なメモリを割り当てることができなかった。

注意

このメソッドは、メッシュの新しいコピーの生成中に最適化を実行できる点を除いて、ID3DXBaseMesh::CloneMesh メソッドとほぼ同様である。

出力メッシュは、入力メッシュのすべての作成パラメータを継承する。