Fonction D3DXComputeTangent

Calcule les vecteurs tangents pour les coordonnées de texture données à l’étape de texture. Fourni pour prendre en charge les applications héritées. Utilisez D3DXComputeTangentFrameEx pour obtenir de meilleurs résultats.

Syntaxe

HRESULT D3DXComputeTangent(
  _In_       LPD3DXMESH Mesh,
  _In_       DWORD      TexStageIndex,
  _In_       DWORD      TangentIndex,
  _In_       DWORD      BinormIndex,
  _In_       DWORD      Wrap,
  _In_ const DWORD      *pAdjacency
);

Paramètres

Maillage [in]

Type : LPD3DXMESH

Pointeur vers une interface ID3DXMesh qui représente le maillage d’entrée.

TexStageIndex [in]

Type : DWORD

Index qui représente l’étape de texture.

TangentIndex [in]

Type : DWORD

Index qui fournit l’index d’utilisation pour les données tangentes. La déclaration de vertex implique l’utilisation ; cet index modifie l’utilisation avec l’index d’utilisation. Pour plus d’informations sur une déclaration de vertex, consultez Déclaration de vertex (Direct3D 9).

BinormIndex [in]

Type : DWORD

Index qui fournit l’index d’utilisation pour les données binormales. La déclaration de vertex implique l’utilisation ; cet index modifie l’utilisation avec l’index d’utilisation. Pour plus d’informations sur une déclaration de vertex, consultez Déclaration de vertex (Direct3D 9).

Encapsuler [dans]

Type : DWORD

Définissez cette valeur sur 0 pour aucun encapsulage ou sur 1 pour l’encapsulage dans les directions vous et V.

pAdjacency [in]

Type : const DWORD*

Pointeur vers un tableau de trois DWORD par visage à remplir avec des index de visage adjacents. Le nombre d’octets dans ce tableau doit être au moins ((3 * GetNumFaces) * sizeof(DWORD)).

Valeur retournée

Type : HRESULT

Si la fonction réussit, la valeur de retour est S_OK. Si la fonction échoue, la valeur de retour peut être l’une des suivantes : D3DERR_INVALIDCALL, D3DXERR_INVALIDDATA, E_OUTOFMEMORY.

Notes

Si la déclaration de vertex de maillage spécifie des champs tangents ou binormals, D3DXComputeTangent met à jour toutes les données tangentes ou binormales fournies par l’utilisateur. Vous pouvez également définir TangentIndex sur D3DX_DEFAULT pour ne pas mettre à jour les données tangentes fournies par l’utilisateur ou définir BinormIndex sur D3DX_DEFAULT pour ne pas mettre à jour les données binormales fournies par l’utilisateur. TexStageIndex ne peut pas être défini sur D3DX_DEFAULT.

D3DXComputeTangent dépend de la déclaration de vertex de maillage contenant soit le champ binormal (BinormIndex), le champ tangent (TangentIndex) ou les deux. Si les deux sont manquants, cette fonction échoue.

Cette fonction appelle simplement D3DXComputeTangentFrameEx avec les paramètres d’entrée suivants :

D3DXComputeTangentFrameEx( Mesh,
                           D3DDECLUSAGE_TEXCOORD,
                           TexStageIndex,
                           ( BinormIndex == D3DX_DEFAULT ) ?
                               D3DX_DEFAULT : D3DDECLUSAGE_BINORMAL,
                               // provides backward function compatibility
                           BinormIndex,
                           ( TangentIndex == D3DX_DEFAULT ) ?
                               D3DX_DEFAULT : D3DDECLUSAGE_TANGENT,
                           TangentIndex,
                           D3DX_DEFAULT, // do not store normals
                           0,
                           ( Wrap ? D3DXTANGENT_WRAP_UV : 0 )
                               | D3DXTANGENT_GENERATE_IN_PLACE
                               | D3DXTANGENT_ORTHOGONALIZE_FROM_U,
                           pAdjacency,
                           -1.01f,
                           -0.01f,
                           -1.01f,
                           NULL,
                           NULL);

Spécifications

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

Voir aussi

Fonctions de maillage