Condividi tramite


Metodo ID3DXTextureGutterHelper::ResampleTex

Ricampiona una trama nella parametrizzazione di questo gutterhelper.

Sintassi

HRESULT ResampleTex(
  [in]  LPDIRECT3DTEXTURE9 pTextureIn,
  [in]  LPD3DXMESH         pMeshIn,
  [in]  D3DDECLUSAGE       Usage,
  [in]  UINT               UsageIndex,
  [out] LPDIRECT3DTEXTURE9 pTextureOut
);

Parametri

pTextureIn [in]

Tipo: LPDIRECT3DTEXTURE9

Trama che corrisponde alla parametrizzazione originale in pMeshIn. Questa trama verrà usata per creare pTextureOut.

pMeshIn [in]

Tipo: LPD3DXMESH

Mesh contenente le parametriizzazioni originali e nuove. È necessario archiviare la nuova parametrizzazione in D3DDECLUSAGE_TEXCOORD indice 0.

Utilizzo [in]

Tipo: D3DDECLUSAGE

Utilizzo dei dati vertex (usato in combinazione con UsageIndex) che identifica il componente della dichiarazione del vertice che contiene la parametrizzazione originale in pMeshIn. Vedere D3DDECLUSAGE.

UsageIndex [in]

Tipo: UINT

Indice in base zero (usato in combinazione con Utilizzo), che identifica il componente della dichiarazione del vertice che contiene la parametrizzazione originale in pMeshIn. La combinazione di D3DDECLUSAGE_TEXCOORD e indice 0 è necessaria per la nuova parametrizzazione; qualsiasi altra combinazione di utilizzo/indice può essere usata.

pTextureOut [out]

Tipo: LPDIRECT3DTEXTURE9

Trama rimplata.

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, E_OUTOFMEMORY.

Commenti

Una parametrizzazione nel caso di questa funzione è un set di coordinate di trama che esegue il mapping dei triangoli di una mesh ai triangoli in una trama. La nuova parametrizzazione è il set di coordinate della trama contenute nell'interfaccia helper della gutter e la parametrizzazione originale è il set di coordinate della trama contenute nella mesh di input.

Si presuppone che le coordinate della trama siano comprese tra 0 e 1, inclusive e la nuova parametrizzazione deve essere dichiarata nella dichiarazione del vertice come indice della coordinata della trama 0. La trama originale e la trama ricampionata devono avere la stessa larghezza e altezza.

Ad esempio, per preparare la ricampionatura di una trama:

  • Creare l'interfaccia della trama originale (pOriginalTex seguente) usando una funzione come D3DXCreateTextureFromFile.
  • Creare la nuova interfaccia trama per la trama riscritto (pResampledTex seguente). Le dimensioni di questa trama devono corrispondere alle dimensioni (larghezza e altezza) della trama helper della gutter.
  • Chiamare D3DXCreateTextureGutterHelper per ottenere la nuova parametrizzazione, come illustrato di seguito:
// Given:
// pMesh points to a mesh that contains the original and new texture coordinates
ID3DXTextureGutterHelper * pGutterHelper;
    
// Mesh vertex declaration
D3DVERTEXELEMENT9 decl[] = {
    {0,  0, D3DDECLTYPE_FLOAT3, D3DDECLMETHOD_DEFAULT, D3DDECLUSAGE_POSITION, 0},
    {0, 12, D3DDECLTYPE_FLOAT3, D3DDECLMETHOD_DEFAULT, D3DDECLUSAGE_NORMAL, 0},
    // contains new set of texcoords
    {0, 24, D3DDECLTYPE_FLOAT2, D3DDECLMETHOD_DEFAULT, D3DDECLUSAGE_TEXCOORD, 0}, 
    // contains original set of texcoords
    {0, 32, D3DDECLTYPE_FLOAT2, D3DDECLMETHOD_DEFAULT, D3DDECLUSAGE_TEXCOORD, 1}, 
    D3DDECL_END()
};
    
// Create a gutter helper with the new parameterization
hr = D3DXCreateTextureGutterHelper(width, height, pMesh, 1, &pGutterHelper);  
    
// Resample the texture
hr = pGutterHelper->ResampleTex(pOriginalTex, pMesh, D3DDECLUSAGE_TEXCOORD, 
           1, pResampledTex); 
    
// Release the gutter helper interface when done with it

Uno scenario comune potrebbe essere quello di usare UVAtlas per creare un atlas di trama e quindi usare ResampleTex per ripristinare la trama nella nuova parametrizzazione. Per altre informazioni sugli atlas, vedere Uso di UVAtlas (Direct3D 9).

Requisiti

Requisito Valore
Intestazione
D3DX9Mesh.h
Libreria
D3dx9.lib

Vedi anche

ID3DXTextureGutterHelper

D3DXUVAtlasCreate