D3DXSimplifyMesh 関数

指定された MinValue にできるだけ近いウェイトを使用して、簡略化されたメッシュを生成します。

構文

HRESULT D3DXSimplifyMesh(
  _In_        LPD3DXMESH           pMesh,
  _In_  const DWORD                *pAdjacency,
  _In_  const D3DXATTRIBUTEWEIGHTS *pVertexAttributeWeights,
  _In_  const FLOAT                *pVertexWeights,
  _In_        DWORD                MinValue,
  _In_        DWORD                Options,
  _Out_       LPD3DXMESH           *ppMesh
);

パラメーター

pMesh [in]

種類: LPD3DXMESH

ソース メッシュを表す ID3DXMesh インターフェイスへのポインター。

pAdjacency [in]

型: const DWORD*

簡略化するメッシュ内の各面の 3 つのネイバーを指定する、1 面あたり 3 つの DWORD の配列へのポインター。

pVertexAttributeWeights [in]

型: const D3DXATTRIBUTEWEIGHTS*

各頂点コンポーネントの重みを含む D3DXATTRIBUTEWEIGHTS 構造体へのポインター。 このパラメーターが NULL に設定されている場合は、既定の構造体が使用されます。 「解説」を参照してください。

pVertexWeights [in]

型: const FLOAT*

頂点の重みの配列へのポインター。 このパラメーターを NULL に設定すると、すべての頂点の重みが 1.0 に設定されます。

MinValue [in]

種類: DWORD

ソース メッシュを簡略化するための Options パラメータに設定されたフラグに応じて、頂点または面の数。

オプション [in]

種類: DWORD

メッシュの簡略化オプションを指定します。 D3DXMESHSIMP のフラグの 1 つを設定できます。

ppMesh [out]

種類: LPD3DXMESH*

返された簡略化メッシュを表す ID3DXMesh インターフェイスへのポインターのアドレス。

戻り値

種類: HRESULT

関数が成功した場合、戻り値はD3D_OK。 関数が失敗した場合、戻り値は次のいずれかになります:D3DERR_INVALIDCALL、D3DXERR_INVALIDDATA、E_OUTOFMEMORY。

解説

この関数は 、MinValue 頂点または面を持つメッシュを生成します。

簡略化プロセスでメッシュを MinValue に減らすことができない場合でも、 MinValue は絶対最小値ではなく、必要な最小値であるため、呼び出しは成功します。

pVertexAttributeWeightsNULL に設定されている場合、既定の D3DXATTRIBUTEWEIGHTS 構造体に次の値が割り当てられます。

D3DXATTRIBUTEWEIGHTS AttributeWeights;
    
AttributeWeights.Position  = 1.0;
AttributeWeights.Boundary =  1.0;
AttributeWeights.Normal   =  1.0;
AttributeWeights.Diffuse  =  0.0;
AttributeWeights.Specular =  0.0;
AttributeWeights.Tex[8]   =  {0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0};

この既定の構造は、ジオメトリと通常の調整のみを考慮するため、ほとんどのアプリケーションで使用する必要があります。 特殊な場合にのみ、他のメンバー フィールドを変更する必要があります。

必要条件

要件
ヘッダー
D3DX9Mesh.h
ライブラリ
D3dx9.lib

関連項目

メッシュ関数