Metodo ID3DXMesh::Optimize

Genera una nuova mesh con visi e vertici riordinati per ottimizzare le prestazioni di disegno.

Sintassi

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

Parametri

Flag [in]

Tipo: DWORD

Specifica il tipo di ottimizzazione da eseguire. Questo parametro può essere impostato su una combinazione di uno o più flag da D3DXMESHOPT e D3DXMESH (ad eccezione di D3DXMESH_32BIT, D3DXMESH_IB_WRITEONLY e D3DXMESH_WRITEONLY).

pAdjacencyIn [in]

Tipo: const DWORD*

Puntatore a una matrice di tre DWORD per viso che specifica i tre vicini per ogni viso nella mesh di origine. Se il bordo non ha visi adiacenti, il valore è 0xffffffff. Vedere la sezione Osservazioni.

pAdjacencyOut [in, out]

Tipo: DWORD*

Puntatore a una matrice di tre DWORD per viso che specifica i tre vicini per ogni viso nella mesh ottimizzata. Se il bordo non ha visi adiacenti, il valore è 0xffffffff.

pFaceRemap [in, out]

Tipo: DWORD*

Matrice di DWORD, una per viso, che identifica il viso mesh originale che corrisponde a ogni viso nella mesh ottimizzata. Se il valore fornito per questo argomento è NULL, i dati del mapping dei visi non vengono restituiti.

ppVertexRemap [out]

Tipo: LPD3DXBUFFER*

Indirizzo di un puntatore a un'interfaccia ID3DXBuffer , che contiene un DWORD per ogni vertice che specifica la modalità di mapping dei nuovi vertici ai vertici precedenti. Questa nuova mappa è utile se è necessario modificare i dati esterni in base al nuovo mapping dei vertici.

ppOptMesh [out]

Tipo: LPD3DXMESH*

Indirizzo di un puntatore a un'interfaccia ID3DXMesh , che rappresenta la mesh ottimizzata.

Valore restituito

Tipo: HRESULT

Se il metodo ha esito positivo, il valore restituito viene D3D_OK. Se il metodo ha esito negativo, il valore restituito può essere uno dei seguenti: D3DERR_INVALIDCALL, E_OUTOFMEMORY.

Commenti

Questo metodo genera una nuova mesh. Prima di eseguire Optimize, un'applicazione deve generare un buffer di adiacenza chiamando ID3DXBaseMesh::GenerateAdjacency. Il buffer di adiacenza contiene dati di adiacenza, ad esempio un elenco di bordi e i visi adiacenti l'uno all'altro.

Questo metodo è molto simile al metodo ID3DXBaseMesh::CloneMesh , ad eccezione del fatto che può eseguire l'ottimizzazione durante la generazione del nuovo clone della mesh. La mesh di output eredita tutti i parametri di creazione della mesh di input.

Requisiti

Requisito Valore
Intestazione
D3DX9Mesh.h
Libreria
D3dx9.lib

Vedi anche

ID3DXMesh

ID3DXMesh::OptimizeInplace