Funzione D3DXSplitMesh
Suddivide una mesh in mesh più piccole delle dimensioni specificate.
Sintassi
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
);
Parametri
-
pMeshIn [in]
-
Tipo: LPD3DXMESH
Puntatore a un'interfaccia ID3DXMesh che rappresenta la mesh di origine.
-
pAdjacencyIn [in]
-
Tipo: const DWORD*
Puntatore a una matrice di tre DWORD per viso che specificano i tre vicini per ogni viso nella mesh da semplificare.
-
MaxSize [in]
-
Tipo: const DWORD
Numero massimo di vertici nella mesh risultante.
-
Opzioni [in]
-
Tipo: const DWORD
Flag di opzione per le nuove mesh.
-
pMeshesOut [out]
-
Tipo: DWORD*
Numero di mesh restituite.
-
ppMeshArrayOut [out]
-
Tipo: LPD3DXBUFFER*
Buffer contenente una matrice di interfacce ID3DXMesh per le nuove mesh. Per una mesh di origine suddivisa in n mesh, ppMeshArrayOut è una matrice di puntatori n ID3DXMesh .
-
ppAdjacencyArrayOut [out]
-
Tipo: LPD3DXBUFFER*
Buffer contenente una matrice di matrici di adjacency (DWORD) per le nuove mesh. Vedere ID3DXBuffer. Questo parametro è facoltativo e,
-
ppFaceRemapArrayOut [out]
-
Tipo: LPD3DXBUFFER*
Buffer contenente una matrice di matrici di remap viso (DWORD) per le nuove mesh. Vedere ID3DXBuffer. Questo parametro è facoltativo e,
-
ppVertRemapArrayOut [out]
-
Tipo: LPD3DXBUFFER*
Buffer contenente una matrice di matrici di rimap dei vertici per le nuove mesh. Vedere ID3DXBuffer. Questo parametro è facoltativo e,
Valore restituito
Se la funzione ha esito positivo, il valore restituito è D3D_OK. Se la funzione ha esito negativo, il valore restituito può essere uno dei valori seguenti: D3DERR_INVALIDCALL, D3DXERR_INVALIDDATA, E_OUTOFMEMORY.
Commenti
Un uso comune di questa funzione consiste nel suddividere una mesh con indici a 32 bit (più di 6535 vertici) in più di una mesh, ognuno dei quali ha indici a 16 bit.
L'adjacency, vertex remap and face remap arrays are arrays are DWORDS dove ogni matrice contiene n puntatori DWORD, seguito dai dati DWORD a cui fa riferimento i puntatori. Ad esempio, per ottenere le informazioni di rimap del viso per viso 3 in mesh 2, è possibile usare il codice seguente, presupponendo che i dati di remap viso siano stati restituiti in una variabile denominata ppFaceRemapArrayOut.
const DWORD **face_remaps =
static_cast<DWORD **>(ppFaceRemapArrayOut->GetBufferPointer());
const DWORD remap = face_remaps[2][3];
Requisiti
Requisito | Valore |
---|---|
Intestazione |
|
Libreria |
|
Vedi anche