ID3DXMesh::Optimize, méthode

Génère un nouveau maillage avec des visages et des sommets réorganisé pour optimiser les performances du dessin.

Syntaxe

HRESULT Optimize(
  [in]            DWORD        Flags,
  [in]      const DWORD        *pAdjacencyIn,
  [in, out]       DWORD        *pAdjacencyOut,
  [in, out]       DWORD        *pFaceRemap,
  [out]           LPD3DXBUFFER *ppVertexRemap,
  [out]           LPD3DXMESH   *ppOptMesh
);

Paramètres

Indicateurs [in]

Type : DWORD

Spécifie le type d’optimisation à effectuer. Ce paramètre peut être défini sur une combinaison d’un ou plusieurs indicateurs de D3DXMESHOPT et D3DXMESH (sauf D3DXMESH_32BIT, D3DXMESH_IB_WRITEONLY et D3DXMESH_WRITEONLY).

pAdjacencyIn [in]

Type : const DWORD*

Pointeur vers un tableau de trois DWORD par visage qui spécifie les trois voisins pour chaque visage dans le maillage source. Si le bord n’a pas de faces adjacentes, la valeur est 0xffffffff. Consultez la section Notes.

pAdjacencyOut [in, out]

Type : DWORD*

Pointeur vers un tableau de trois DWORD par visage qui spécifie les trois voisins pour chaque visage dans le maillage optimisé. Si le bord n’a pas de faces adjacentes, la valeur est 0xffffffff.

pFaceRemap [in, out]

Type : DWORD*

Tableau de DWORDs, un par visage, qui identifie le visage de maillage d’origine qui correspond à chaque visage dans le maillage optimisé. Si la valeur fournie pour cet argument est NULL, les données de remappage de visage ne sont pas retournées.

ppVertexRemap [out]

Type : LPD3DXBUFFER*

Adresse d’un pointeur vers une interface ID3DXBuffer , qui contient un DWORD pour chaque vertex qui spécifie la façon dont les nouveaux sommets sont mappés aux anciens sommets. Ce remappage est utile si vous devez modifier des données externes en fonction du nouveau mappage de vertex.

ppOptMesh [out]

Type : LPD3DXMESH*

Adresse d’un pointeur vers une interface ID3DXMesh , représentant le maillage optimisé.

Valeur retournée

Type : HRESULT

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

Notes

Cette méthode génère un nouveau maillage. Avant d’exécuter Optimize, une application doit générer une mémoire tampon d’adjacence en appelant ID3DXBaseMesh::GenerateAdjacency. La mémoire tampon d’adjacence contient des données d’adjacence, telles qu’une liste d’arêtes et les visages adjacents les uns aux autres.

Cette méthode est très similaire à la méthode ID3DXBaseMesh::CloneMesh , sauf qu’elle peut effectuer une optimisation tout en générant le nouveau clone du maillage. Le maillage de sortie hérite de tous les paramètres de création du maillage d’entrée.

Spécifications

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

Voir aussi

ID3DXMesh

ID3DXMesh::OptimizeInplace