Share via


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
D3DX9Mesh.h
Libreria
D3dx9.lib

Vedi anche

Funzioni mesh