Condividi tramite


Metodo ID3DXMesh::OptimizeInplace

Genera una mesh con visi riordinati e vertici per ottimizzare le prestazioni di disegno. Questo metodo riordina la mesh esistente.

Sintassi

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

Parametri

Flag [in]

Tipo: DWORD

Combinazione di uno o più flag D3DXMESHOPT , specificando il tipo di ottimizzazione da eseguire.

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.

pAdjacencyOut [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. Se il valore specificato per questo argomento è NULL, i dati di adjacency non vengono restituiti.

pFaceRemap [out]

Tipo: DWORD*

Matrice di DWORD, una per viso, che identifica la faccia mesh originale che corrisponde a ogni viso nella mesh ottimizzata. Se il valore specificato per questo argomento è NULL, i dati di remap del viso non vengono restituiti.

ppVertexRemap [out]

Tipo: LPD3DXBUFFER*

Indirizzo di un puntatore a un'interfaccia ID3DXBuffer , che contiene un DWORD per ogni vertice che specifica il modo in cui i nuovi vertici vengono mappati ai vertici precedenti. Questa mappa è utile se è necessario modificare i dati esterni in base al nuovo mapping dei vertici. Se il valore specificato per questo argomento è NULL, i dati del vertice remap non vengono restituiti.

Valore restituito

Tipo: HRESULT

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

Commenti

Prima di eseguire ID3DXMesh::OptimizeInplace, un'applicazione deve generare un buffer di adjacency chiamando ID3DXBaseMesh::GenerateAdjacency. Il buffer di adjacency contiene dati di adjacency, ad esempio un elenco di bordi e i visi adiacenti tra loro.

Nota

Questo metodo avrà esito negativo se la mesh condivide il buffer del vertice con un'altra mesh, a meno che il D3DXMESHOPT_IGNOREVERTS non sia impostato in Flag.

 

Requisiti

Requisito Valore
Intestazione
D3DX9Mesh.h
Libreria
D3dx9.lib

Vedi anche

ID3DXMesh

ID3DXMesh::Optimize