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 |
|
Biblioteca |
|
Consulte también