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