D3DXSimplifyMesh
指定された重みを使用して、MinValue にできるだけ近い単純化メッシュを生成します。
HRESULT
D3DXSimplifyMesh(
LPD3DXMESH pMesh,
CONST DWORD * pAdjacency,
CONST D3DXATTRIBUTEWEIGHTS * pVertexAttributeWeights,
CONST FLOAT * pVertexWeights,
DWORD MinValue,
DWORD Options,
LPD3DXMESH * ppMesh
);
パラメータ
- pMesh
ソース メッシュを表す ID3DXMesh インターフェイスへのポインターです。 - pAdjacency
面ごとの 3 つの DWORD 値を格納する配列へのポインターです。この配列によって、単純化するメッシュの各面に隣接した 3 つの面を定義します。 - pVertexAttributeWeights
各頂点コンポーネントの加重が含まれている D3DXATTRIBUTEWEIGHTS 構造体へのポインターです。このパラメーターが NULL の場合、デフォルトの構造体が使用されます。「解説」を参照してください。 - pVertexWeights
頂点加重の配列へのポインターです。このパラメーターが NULL の場合、すべての頂点の加重は 1.0 になります。 - MinValue
Options パラメーターに設定したフラグに対応する頂点または面の数です。このパラメーターの値によって元のメッシュを単純化します。 - Options
メッシュの単純化オプションです。D3DXMESHSIMP のいずれかのフラグを指定できます。 - ppMesh
ID3DXMesh インターフェイスへのポインターのアドレスです。返される単純化メッシュを表します。
戻り値
成功すると、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};
通常のアプリケーションでは、このデフォルトの構造体を使用してください。この場合、ジオメトリと法線の調整のみが行われます。他のメンバーのフィールドを調整する必要があるのは特別な場合のみです。
要件
ヘッダー: D3DX9Mesh.h 宣言
ライブラリ: D3dx9.lib 内容