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 |
|
Bibliothèque |
|
Voir aussi