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
D3DX9Mesh. h
Bibliothèque
D3dx9. lib

Voir aussi

ID3DXTextureGutterHelper

D3DXUVAtlasCreate