Funzione D3DXUVAtlasPartition
Creare un atlas UV per una mesh.
Sintassi
HRESULT D3DXUVAtlasPartition(
_In_ LPD3DXMESH pMesh,
_In_ UINT dwMaxChartNumber,
_In_ FLOAT fMaxStretch,
_In_ DWORD dwTextureIndex,
_In_ const DWORD *pdwAdjacency,
const DWORD *pdwFalseEdges,
_In_ FLOAT *pfIMTArray,
_In_ LPD3DXUVATLASCB pCallback,
_In_ FLOAT fCallbackFrequency,
_In_ LPVOID pUserContent,
_In_ DWORD dwOptions,
_In_ LPD3DXMESH *ppMeshOut,
_Out_ LPD3DXBUFFER pFacePartitioning,
_Out_ LPD3DXBUFFER *ppVertexRemapArray,
LPD3DXBUFFER *ppPartitionResultAdjacency,
_Out_ FLOAT *pfMaxStretchOut,
_Out_ UINT *pdwNumChartsOut
);
Parametri
-
pMesh [in]
-
Tipo: LPD3DXMESH
Puntatore a una mesh di input (vedere ID3DXMesh) che contiene la geometria dell'oggetto per il calcolo dell'atlas. Come minimo, la mesh deve contenere dati di posizione e coordinate di trama 2D.
-
dwMaxChartNumber [in]
-
Tipo: UINT
Numero massimo di grafici in cui partizionare la mesh. Vedere le osservazioni sulle modalità di partizionamento. Usare 0 per indicare a D3DX che l'atlas deve essere parametrizzato in base all'estensione.
-
fMaxStretch [in]
-
Tipo: FLOAT
Quantità di estensione consentita. 0 significa che non è consentita alcuna estensione, 1 significa che è possibile utilizzare qualsiasi quantità di estensione.
-
dwTextureIndex [in]
-
Tipo: DWORD
Indice delle coordinate della trama in base zero che identifica il set di coordinate della trama da usare.
-
pdwAdjacency [in]
-
Tipo: const DWORD*
Puntatore a una matrice di dati di adiacenza con 3 DWORD per viso, che indica quali triangoli sono adiacenti tra loro (vedere ID3DXBaseMesh::GenerateAdjacency).
-
pdwFalseEdges
-
Tipo: const DWORD*
Matrice con 3 DWORDS per viso. Ogni viso indica se un bordo è false o meno. Un bordo diverso da false è indicato da -1, un bordo falso è indicato da qualsiasi altro valore. Ciò consente la parametrizzazione di una mesh di quad in cui i bordi verso il basso del centro di ogni quad non verranno tagliati.
-
pfIMTArray [in]
-
Tipo: FLOAT*
Puntatore a una matrice di tensori metrici integrati che descrive come estendere un triangolo (vedere IntegratedMetricTensor).
-
pCallback [in]
-
Tipo: LPD3DXUVATLASCB
Puntatore a una funzione di callback (vedere LPD3DXUVATLASCB) utile per il monitoraggio dello stato di avanzamento.
-
fCallbackFrequency [in]
-
Tipo: FLOAT
Specificare la frequenza con cui D3DX chiamerà il callback; un valore predefinito ragionevole è 0,0001f.
-
pUserContent [in]
-
Tipo: LPVOID
Puntatore a un valore definito dall'utente passato alla funzione di callback; in genere usato da un'applicazione per passare un puntatore a una struttura di dati che fornisce informazioni di contesto per la funzione di callback.
-
dwOptions [in]
-
Tipo: DWORD
Specificare la qualità dei grafici generati combinando uno o più flag D3DXUVATLAS .
-
ppMeshOut [in]
-
Tipo: LPD3DXMESH*
Puntatore alla mesh creata con l'atlas (vedere ID3DXMesh).
-
pFacePartitioning [out]
-
Tipo: LPD3DXBUFFER
Puntatore a una matrice dei dati di partizionamento del viso finale. Ogni elemento contiene una DWORD per viso (vedere ID3DXBuffer).
-
ppVertexRemapArray [out]
-
Tipo: LPD3DXBUFFER*
Puntatore a una matrice di vertici mappati. Ogni elemento matrice identifica il vertice originale da cui proviene ogni vertice finale (se il vertice è stato diviso durante il mapping). Ogni elemento matrice contiene un DWORD per vertice.
-
ppPartitionResultAdjacency
-
Tipo: LPD3DXBUFFER*
Indirizzo di un puntatore a un'interfaccia ID3DXBuffer . Questo buffer conterrà una matrice di tre DWORD per viso che specificano i tre vicini per ogni viso nella mesh di output. Questo parametro non deve essere NULL, perché la chiamata successiva a D3DXUVAtlasPack() lo richiede.
-
pfMaxStretchOut [out]
-
Tipo: FLOAT*
Puntatore al valore massimo di estensione generato dall'algoritmo atlas. L'intervallo è compreso tra 0,0 e 1,0.
-
pdwNumChartsOut [out]
-
Tipo: UINT*
Puntatore al numero di grafici creati dall'algoritmo atlas. Se dwMaxChartNumber è troppo basso, questo parametro restituirà il numero minimo di grafici necessari per creare un atlas.
Valore restituito
Tipo: HRESULT
Se la funzione ha esito positivo, il valore restituito è D3D_OK; in caso contrario, il valore è D3DERR_INVALIDCALL.
Commenti
D3DXUVAtlasPartition è simile a D3DXUVAtlasCreate, ad eccezione del fatto che D3DXUVAtlasPartition non esegue il passaggio di compressione finale.
Requisiti
Requisito | Valore |
---|---|
Intestazione |
|
Libreria |
|
Vedi anche