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 |
|
Libreria |
|
Vedi anche