ID3DXMesh::Optimize 方法
產生具有重新排序臉部和頂點的新網格,以優化繪圖效能。
語法
HRESULT Optimize(
[in] DWORD Flags,
[in] const DWORD *pAdjacencyIn,
[in, out] DWORD *pAdjacencyOut,
[in, out] DWORD *pFaceRemap,
[out] LPD3DXBUFFER *ppVertexRemap,
[out] LPD3DXMESH *ppOptMesh
);
參數
-
旗標 [in]
-
類型: DWORD
指定要執行的優化類型。 這個參數可以設定為 D3DXMESHOPT 和 D3DXMESH (的一或多個旗標的組合,但D3DXMESH_32BIT、D3DXMESH_IB_WRITEONLY和D3DXMESH_WRITEONLY) 除外。
-
pAdjacencyIn [in]
-
類型:const DWORD*
每個臉部三個 DWORD 陣列的指標,指定來源網格中每個臉部的三個芳鄰。 如果邊緣沒有連續的臉部,此值會0xffffffff。 請參閱<備註>。
-
pAdjacencyOut [in, out]
-
類型: DWORD*
每個臉部三個 DWORD 陣列的指標,指定優化網格中每個臉部的三個芳鄰。 如果邊緣沒有連續的臉部,此值會0xffffffff。
-
pFaceRemap [in, out]
-
類型: DWORD*
DWORD 陣列,每個臉部一個,可識別對應至優化網格中每個臉部的原始網格面。 如果為此引數提供的值是 Null,則不會傳回臉部重新對應資料。
-
ppVertexRemap [out]
-
類型: LPD3DXBUFFER*
ID3DXBuffer介面指標的位址,其中包含每個頂點的 DWORD,指定新頂點對應至舊頂點的方式。 如果您需要根據新的頂點對應來改變外部資料,此重新對應就很有用。
-
ppOptMesh [out]
-
類型: LPD3DXMESH*
ID3DXMesh介面指標的位址,代表優化的網格。
傳回值
類型: HRESULT
如果方法成功,傳回值會D3D_OK。 如果方法失敗,傳回值可以是下列其中一項:D3DERR_INVALIDCALL,E_OUTOFMEMORY。
備註
這個方法會產生新的網格。 在執行 Optimize 之前,應用程式必須呼叫 ID3DXBaseMesh::GenerateAdjacency來產生相鄰緩衝區。 相鄰緩衝區包含連續的資料,例如邊緣清單和彼此連續的臉部。
這個方法與 ID3DXBaseMesh::CloneMesh 方法非常類似,不同之處在于它可以在產生網格的新複本時執行優化。 輸出網格會繼承輸入網格的所有建立參數。
規格需求
需求 | 值 |
---|---|
標頭 |
|
程式庫 |
|
另請參閱