Fonction D3DXSplitMesh

Fractionne un maillage en maillages plus petits que la taille spécifiée.

Syntaxe

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
);

Paramètres

pMeshIn [in]

Type : LPD3DXMESH

Pointeur vers une interface ID3DXMesh , représentant le maillage source.

pAdjacencyIn [in]

Type : const DWORD*

Pointeur vers un tableau de trois DWORDs par visage qui spécifient les trois voisins de chaque visage dans le maillage à simplifier.

MaxSize [in]

Type : const DWORD

Nombre maximal de sommets dans le maillage résultant.

Options [in]

Type : const DWORD

Indicateurs d’option pour les nouveaux maillages.

pMeshesOut [out]

Type : DWORD*

Nombre de maillages retournés.

ppMeshArrayOut [out]

Type : LPD3DXBUFFER*

Mémoire tampon contenant un tableau d’interfaces ID3DXMesh pour les nouveaux maillages. Pour un maillage source divisé en n maillages, ppMeshArrayOut est un tableau de n pointeurs ID3DXMesh .

ppAdjacencyArrayOut [out]

Type : LPD3DXBUFFER*

Mémoire tampon contenant un tableau de tableaux d’adjacence (DWORD) pour les nouveaux maillages. Consultez ID3DXBuffer. Ce paramètre est facultatif.

ppFaceRemapArrayOut [out]

Type : LPD3DXBUFFER*

Mémoire tampon contenant un tableau de tableaux de remappage visage (DWORD) pour les nouveaux maillages. Consultez ID3DXBuffer. Ce paramètre est facultatif.

ppVertRemapArrayOut [out]

Type : LPD3DXBUFFER*

Mémoire tampon contenant un tableau de tableaux de remappage de vertex pour les nouveaux maillages. Consultez ID3DXBuffer. Ce paramètre est facultatif.

Valeur renvoyée

Si la fonction réussit, la valeur de retour est D3D_OK. Si la fonction échoue, la valeur de retour peut être l’une des valeurs suivantes : D3DERR_INVALIDCALL, D3DXERR_INVALIDDATA, E_OUTOFMEMORY.

Notes

Une utilisation courante de cette fonction consiste à fractionner un maillage avec des index 32 bits (plus de 65535 sommets) en plusieurs maillages, chacun d’entre eux ayant des index 16 bits.

Les tableaux de reconnaissance, de remappage de vertex et de remappage de visage sont des tableaux DWORD où chaque tableau contient n pointeurs DWORD, suivis des données DWORD référencées par les pointeurs. Par exemple, pour obtenir les informations de remappage du visage 3 dans le maillage 2, le code suivant peut être utilisé, en supposant que les données de remappage de visage ont été retournées dans une variable nommée ppFaceRemapArrayOut.

   
const DWORD **face_remaps = 
    static_cast<DWORD **>(ppFaceRemapArrayOut->GetBufferPointer());
const DWORD remap = face_remaps[2][3];

Configuration requise

Condition requise Valeur
En-tête
D3DX9Mesh.h
Bibliothèque
D3dx9.lib

Voir aussi

Fonctions de maillage