Partilhar via


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
D3DX9Mesh.h
Biblioteca
D3dx9.lib

Confira também

ID3DXTextureGutterHelper

D3DXUVAtlasCriar