Método ID3DXTextureGutterHelper::ResampleTex
Resample uma textura na parametrização desse gutterhelper.
Sintaxe
HRESULT ResampleTex(
[in] LPDIRECT3DTEXTURE9 pTextureIn,
[in] LPD3DXMESH pMeshIn,
[in] D3DDECLUSAGE Usage,
[in] UINT UsageIndex,
[out] LPDIRECT3DTEXTURE9 pTextureOut
);
Parâmetros
-
pTextureIn [in]
-
Tipo: LPDIRECT3DTEXTURE9
Textura que corresponde à parametrização original em pMeshIn. Essa textura será usada para criar pTextureOut.
-
pMeshIn [in]
-
Tipo: LPD3DXMESH
Malha que contém as parametrizações originais e novas. É necessário armazenar a nova parametrização no índice 0 D3DDECLUSAGE_TEXCOORD.
-
Uso [in]
-
Tipo: D3DDECLUSAGE
Uso de dados de vértice (usado em combinação com UsageIndex) que identifica o componente da declaração de vértice que contém a parametrização original em pMeshIn. Consulte D3DDECLUSAGE.
-
UsageIndex [in]
-
Tipo: UINT
Índice baseado em zero (usado em combinação com Usage), que identifica o componente da declaração de vértice que contém a parametrização original em pMeshIn. A combinação de D3DDECLUSAGE_TEXCOORD e índice 0 é necessária para a nova parametrização; qualquer outra combinação de uso/índice pode ser usada.
-
pTextureOut [out]
-
Tipo: LPDIRECT3DTEXTURE9
Textura reemplosa.
Valor retornado
Tipo: HRESULT
Se o método for bem-sucedido, o valor retornado será D3D_OK. Se o método falhar, o valor retornado poderá ser um dos seguintes: D3DERR_INVALIDCALL, E_OUTOFMEMORY.
Comentários
Uma parametrização no caso dessa função é um conjunto de coordenadas de textura que mapeia os triângulos de uma malha para os triângulos em uma textura. A nova parametrização é o conjunto de coordenadas de textura contidas na interface auxiliar da medianiz e a parametrização original é o conjunto de coordenadas de textura contidas na malha de entrada.
Supõe-se que as coordenadas de textura estejam entre 0 e 1, inclusive, e a nova parametrização deve ser declarada na declaração de vértice como índice de coordenadas de textura 0. A textura original e a textura resampleda devem ter a mesma largura e altura.
Por exemplo, para se preparar para resampling de uma textura:
- Crie a interface de textura original (pOriginalTex abaixo) usando uma função como D3DXCreateTextureFromFile.
- Crie a nova interface de textura para a textura resampleda (pResampledTex abaixo). O tamanho dessa textura deve corresponder ao tamanho (largura e altura) da textura auxiliar da sarjeta.
- Chame D3DXCreateTextureGutterHelper para obter a nova parametrização, conforme mostrado aqui:
// 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
Um cenário comum pode ser usar UVAtlas para criar um atlas de textura e, em seguida, usar ResampleTex para resampler a textura na nova parametrização. Para obter mais informações sobre atlas, consulte Using UVAtlas (Direct3D 9).
Requisitos
Requisito | Valor |
---|---|
parâmetro |
|
Biblioteca |
|
Confira também