Método ID3DXTextureGutterHelper::ResampleTex

Reemplea una textura en la parametrización de este gutterhelper.

Sintaxis

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 a la parametrización original en pMeshIn. Esta textura se usará para crear pTextureOut.

pMeshIn [in]

Tipo: LPD3DXMESH

Malla que contiene las parametrizaciones originales y nuevas. Es necesario almacenar la nueva parametrización en D3DDECLUSAGE_TEXCOORD índice 0.

Uso [in]

Tipo: D3DDECLUSAGE

Uso de datos de vértice (usado en combinación con UsageIndex) que identifica el componente de la declaración de vértice que contiene la parametrización original en pMeshIn. Consulte D3DDECLUSAGE.

UsageIndex [in]

Tipo: UINT

Índice de base cero (usado en combinación con Usage), que identifica el componente de la declaración de vértice que contiene la parametrización original en pMeshIn. La combinación de D3DDECLUSAGE_TEXCOORD e índice 0 es necesaria para la nueva parametrización; Se puede usar cualquier otra combinación de uso o índice.

pTextureOut [out]

Tipo: LPDIRECT3DTEXTURE9

Textura remuestreo.

Valor devuelto

Tipo: HRESULT

Si el método se ejecuta correctamente, el valor devuelto es D3D_OK. Si se produce un error en el método, el valor devuelto puede ser uno de los siguientes: D3DERR_INVALIDCALL, E_OUTOFMEMORY.

Comentarios

Una parametrización en el caso de esta función es un conjunto de coordenadas de textura que asigna los triángulos de una malla a los triángulos de una textura. La nueva parametrización es el conjunto de coordenadas de textura contenidas en la interfaz auxiliar de medianil y la parametrización original es el conjunto de coordenadas de textura contenidas en la malla de entrada.

Se supone que las coordenadas de textura están entre 0 y 1, ambos inclusive, y la nueva parametrización debe declararse en la declaración de vértice como índice de coordenadas de textura 0. La textura original y la textura remuestreo deben tener el mismo ancho y alto.

Por ejemplo, para prepararse para volver a muestrear una textura:

  • Cree la interfaz de textura original (pOriginalTex a continuación) con una función como D3DXCreateTextureFromFile.
  • Cree la nueva interfaz de textura para la textura remuestreo (pResampledTex a continuación). El tamaño de esta textura debe coincidir con el tamaño (ancho y alto) de la textura auxiliar del medianil.
  • Llame a D3DXCreateTextureGutterHelper para obtener la nueva parametrización como se muestra aquí:
// 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

Un escenario común podría ser usar UVAtlas para crear un atlas de textura y, a continuación, usar ResampleTex para volver a implementar la textura en la nueva parametrización. Para obtener más información sobre los atlas, consulta Usar UVAtlas (Direct3D 9).

Requisitos

Requisito Value
Encabezado
D3DX9Mesh.h
Biblioteca
D3dx9.lib

Consulte también

ID3DXTextureGutterHelper

D3DXUVAtlasCreate