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 |
|
Bibliothèque |
|
Voir aussi