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*
每個臉部三個 DWORD 陣列的指標,指定要簡化網格中每個臉部的三個芳鄰。
-
pVertexAttributeWeights [in]
-
類型:const D3DXATTRIBUTEWEIGHTS*
D3DXATTRIBUTEWEIGHTS結構的指標,其中包含每個頂點元件的權數。 如果此參數設定為 Null,則會使用預設結構。 請參閱<備註>。
-
pVertexWeights [in]
-
類型:const FLOAT*
頂點加權陣列的指標。 如果此參數設定為 Null,則所有頂點加權都會設定為 1.0。
-
MinValue [in]
-
類型: DWORD
頂點或臉部數目,視 Options 參數中設定的旗標而定,用來簡化來源網格。
-
選項 [in]
-
類型: DWORD
指定網格的簡化選項。 您可以設定 D3DXMESHSIMP 中的其中一個旗標。
-
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};
此預設結構是大部分應用程式應該使用的內容,因為它只會考慮幾何和一般調整。 只有在特殊情況下,才需要修改其他成員欄位。
規格需求
需求 | 值 |
---|---|
標頭 |
|
程式庫 |
|
另請參閱