D3DXSplitMesh 函式
將網格分割成小於指定大小的網格。
語法
void D3DXSplitMesh(
_In_ LPD3DXMESH pMeshIn,
_In_ const DWORD *pAdjacencyIn,
_In_ const DWORD MaxSize,
_In_ const DWORD Options,
_Out_ DWORD *pMeshesOut,
_Out_ LPD3DXBUFFER *ppMeshArrayOut,
_Out_ LPD3DXBUFFER *ppAdjacencyArrayOut,
_Out_ LPD3DXBUFFER *ppFaceRemapArrayOut,
_Out_ LPD3DXBUFFER *ppVertRemapArrayOut
);
參數
-
pMeshIn [in]
-
類型: LPD3DXMESH
ID3DXMesh介面的指標,代表來源網格。
-
pAdjacencyIn [in]
-
類型:const DWORD*
每個臉部三個 DWORD 陣列的指標,指定要簡化網格中每個臉部的三個芳鄰。
-
MaxSize [in]
-
類型:const DWORD
結果網格中的頂點數目上限。
-
選項 [in]
-
類型:const DWORD
新網格的選項旗標。
-
pMeshesOut [out]
-
類型: DWORD*
傳回的網格數目。
-
ppMeshArrayOut [out]
-
類型: LPD3DXBUFFER*
緩衝區,其中包含新網格的 ID3DXMesh 介面陣列。 對於分割成 n 個網格的來源網格, ppMeshArrayOut 是 n ID3DXMesh 指標的陣列。
-
ppAdjacencyArrayOut [out]
-
類型: LPD3DXBUFFER*
緩衝區,其中包含新網格的相鄰陣列 (DWORD) 。 請參閱 ID3DXBuffer。 這是選擇性參數。
-
ppFaceRemapArrayOut [out]
-
類型: LPD3DXBUFFER*
緩衝區,其中包含新網格的臉部重新對應陣列 (DWORD) 。 請參閱 ID3DXBuffer。 這是選擇性參數。
-
ppVertRemapArrayOut [out]
-
類型: LPD3DXBUFFER*
包含新網格頂點重新對應陣列陣列的緩衝區。 請參閱 ID3DXBuffer。 這是選擇性參數。
傳回值
如果函式成功,傳回值會D3D_OK。 如果函式失敗,傳回值可以是下列其中一個值:D3DERR_INVALIDCALL、D3DXERR_INVALIDDATA E_OUTOFMEMORY。
備註
此函式的常見用法是將具有 32 位索引的網格分割 (超過 65535 個頂點) 成多個網格,每個網格都有 16 位索引。
相鄰、頂點重新對應和臉部重新對應陣列是 DWORD,其中每個陣列都包含 n 個 DWORD 指標,後面接著指標所參考的 DWORD 資料。 例如,若要取得網格 2 中臉部 3 的臉部重新對應資訊,可以使用下列程式碼,假設臉部重新對應資料是在名為 ppFaceRemapArrayOut的變數中傳回。
const DWORD **face_remaps =
static_cast<DWORD **>(ppFaceRemapArrayOut->GetBufferPointer());
const DWORD remap = face_remaps[2][3];
規格需求
需求 | 值 |
---|---|
標頭 |
|
程式庫 |
|
另請參閱