Partager via


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 [in]

Type : LPDIRECT3DTEXTURE9

Texture qui correspond au paramétrage d’origine dans pMeshIn. Cette texture sera utilisée pour créer pTextureOut.

pMeshIn [in]

Type : LPD3DXMESH

Maillage contenant les paramètres d’origine et les nouveaux paramètres. Il est nécessaire de stocker le nouveau paramétrage dans D3DDECLUSAGE_TEXCOORD’index 0.

Utilisation [in]

Type : D3DDECLUSAGE

Utilisation des données de vertex (utilisée en combinaison avec UsageIndex) qui identifie le composant de la déclaration de vertex qui contient le paramétrage d’origine dans pMeshIn. Consultez D3DDECLUSAGE.

UsageIndex [in]

Type : UINT

Index de base zéro (utilisé en combinaison avec Usage), 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 d’index 0 est requise pour le nouveau paramétrage ; toute autre combinaison utilisation/index peut être utilisée.

pTextureOut [out]

Type : LPDIRECT3DTEXTURE9

Texture rééchantillonnée.

Valeur retournée

Type : HRESULT

Si la méthode réussit, 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

Dans le cas de cette fonction, un paramètre est un ensemble de coordonnées de texture qui mappe les triangles d’un maillage aux triangles d’une texture. Le nouveau paramétrage est l’ensemble de coordonnées de texture contenues dans l’interface d’assistance de la gouttière, et le paramétrage d’origine est l’ensemble de 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, inclusivement, et que le nouveau paramétrage doit être déclaré dans la déclaration de vertex en tant qu’index de coordonnées 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 telle que 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 gouttière.
  • Appelez D3DXCreateTextureGutterHelper pour obtenir le nouveau paramétrage, comme illustré 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 peut être d’utiliser UVAtlas pour créer un atlas de texture, puis d’utiliser ResampleTex pour rééchantillonner la texture dans la nouvelle configuration. Pour plus d’informations sur les atlas, consultez Utilisation d’UVAtlas (Direct3D 9).

Spécifications

Condition requise Valeur
En-tête
D3DX9Mesh.h
Bibliothèque
D3dx9.lib

Voir aussi

ID3DXTextureGutterHelper

D3DXUVAtlasCreate