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 は絶対最小値ではなく、必要な最小値であるため、呼び出しは成功します。
pVertexAttributeWeights が NULL に設定されている場合、既定の 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};
この既定の構造は、ジオメトリと通常の調整のみを考慮するため、ほとんどのアプリケーションで使用する必要があります。 特殊な場合にのみ、他のメンバー フィールドを変更する必要があります。
必要条件
要件 | 値 |
---|---|
ヘッダー |
|
ライブラリ |
|
関連項目