ID3DXTextureGutterHelper :: ResampleTex, méthode
Rééchantillonne une texture dans le paramétrage de ce gutterhelper.
Syntaxe
HRESULT ResampleTex(
[in] LPDIRECT3DTEXTURE9 pTextureIn,
[in] LPD3DXMESH pMeshIn,
[in] D3DDECLUSAGE Usage,
[in] UINT UsageIndex,
[out] LPDIRECT3DTEXTURE9 pTextureOut
);
Paramètres
-
pTextureIn [ dans]
-
Type : LPDIRECT3DTEXTURE9
Texture qui correspond au paramétrage d’origine dans pMeshIn. Cette texture sera utilisée pour créer pTextureOut.
-
pMeshIn [ dans]
-
Type : LPD3DXMESH
Maille contenant les paramétrages originaux et nouveaux. Il est nécessaire pour stocker le nouveau paramétrage dans l' _ index 0 D3DDECLUSAGE texcoord.
-
Utilisation [ dans]
-
Type : D3DDECLUSAGE
Utilisation des données de vertex (utilisée en association avec UsageIndex) qui identifie le composant de la déclaration de vertex qui contient le paramétrage d’origine dans pMeshIn. Consultez D3DDECLUSAGE.
-
UsageIndex [ dans]
-
Type : uint
Index de base zéro (utilisé en association avec l’utilisation), qui identifie le composant de la déclaration de vertex qui contient le paramétrage d’origine dans pMeshIn. La combinaison de D3DDECLUSAGE _ texcoord et de l’index 0 est requise pour le nouveau paramétrage ; toute autre combinaison d’utilisation/d’index peut être utilisée.
-
pTextureOut [ à]
-
Type : LPDIRECT3DTEXTURE9
Texture rééchantillonnée.
Valeur de retour
Type : HRESULT
Si la méthode est réussie, la valeur de retour est D3D _ OK. Si la méthode échoue, la valeur de retour peut être l’une des suivantes : D3DERR _ INVALIDCALL, E _ OUTOFMEMORY.
Notes
Un paramétrage dans le cas de cette fonction est un ensemble de coordonnées de texture qui mappe les triangles d’une maille aux triangles d’une texture. Le nouveau paramétrage est l’ensemble des coordonnées de texture contenues dans l’interface d’assistance de reliure, et le paramétrage d’origine est l’ensemble des coordonnées de texture contenues dans le maillage d’entrée.
Il est supposé que les coordonnées de texture sont comprises entre 0 et 1 (inclus), et le nouveau paramétrage doit être déclaré dans la déclaration de vertex comme index de coordonnée de texture 0. La texture d’origine et la texture rééchantillonnée doivent avoir la même largeur et la même hauteur.
Par exemple, pour préparer le rééchantillonnage d’une texture :
- Créez l’interface de texture d’origine (pOriginalTex ci-dessous) à l’aide d’une fonction comme D3DXCreateTextureFromFile.
- Créez la nouvelle interface de texture pour la texture rééchantillonnée (pResampledTex ci-dessous). La taille de cette texture doit correspondre à la taille (largeur et hauteur) de la texture d’assistance de la reliure.
- Appelez D3DXCreateTextureGutterHelper pour obtenir le nouveau paramétrage comme indiqué ici :
// 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 scénario courant consiste à utiliser UVAtlas pour créer un Atlas de textures, puis à utiliser ResampleTex pour rééchantillonner la texture dans le nouveau paramétrage. Pour plus d’informations sur les Atlas, consultez utilisation de UVAtlas (Direct3D 9).
Spécifications
| Condition requise | Valeur |
|---|---|
| En-tête |
|
| Bibliothèque |
|