Fonction D3DXComputeTangentFrame
Calculez des vecteurs tangentes, binormals et normaux pour un maillage.
Syntaxe
HRESULT D3DXComputeTangentFrame(
_In_ ID3DXMesh *pMesh,
_In_ DWORD dwOptions
);
Paramètres
-
pMesh [in]
-
Type : ID3DXMesh*
Pointeur vers un objet de maillage ID3DXMesh d’entrée .
-
dwOptions [in]
-
Type : DWORD
Combinaison d’un ou plusieurs indicateurs D3DXTANGENT .
Utilisez NULL pour spécifier les options suivantes :
- Pondre la longueur normale du vecteur par l’angle, en radians, subtendé par les deux arêtes qui quittent le sommet.
- Calculez les coordonnées cartésiennes orthogonales à partir des coordonnées de texture UV.
- Les textures ne sont pas encapsulées dans des directions U ou V
- Les dérivés partiels en ce qui concerne les coordonnées de texture sont normalisés.
- Les sommets sont classés dans le sens inverse des aiguilles d’une montre autour de chaque triangle.
- Utilisez des vecteurs normaux par vertex déjà présents dans le maillage d’entrée.
- Les résultats seront stockés dans le maillage d’entrée d’origine. La fonction échoue si de nouveaux sommets doivent être créés.
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
Cette fonction appelle simplement D3DXComputeTangentFrameEx avec les paramètres d’entrée suivants :
D3DXComputeTangentFrameEx(pMesh, D3DDECLUSAGE_TEXCOORD, 0,
D3DDECLUSAGE_BINORMAL, 0, D3DDECLUSAGE_TANGENT, 0,
D3DDECLUSAGE_NORMAL, 0,
dwOptions | D3DXTANGENT_GENERATE_IN_PLACE,
NULL, 0.01f, 0.25f, 0.01f, NULL, NULL);
Les singularités sont gérées en fonction des besoins en regroupant les arêtes et en fractionnant les sommets. Si des sommets doivent être fractionnés, la fonction échoue. Le vecteur normal calculé à chaque sommet est toujours normalisé pour avoir une longueur unitaire.
La solution la plus robuste pour le calcul des coordonnées cartésiennes orthogonales consiste à ne pas définir d’indicateurs D3DXTANGENT_ORTHOGONALIZE_FROM_U et D3DXTANGENT_ORTHOGONALIZE_FROM_V, afin que les coordonnées orthogonales soient calculées à partir des deux coordonnées de texture UV. Toutefois, dans ce cas, si U ou V est égal à zéro, la fonction calcule les coordonnées orthogonales à l’aide de D3DXTANGENT_ORTHOGONALIZE_FROM_V ou D3DXTANGENT_ORTHOGONALIZE_FROM_U respectivement.
Spécifications
Condition requise | Valeur |
---|---|
En-tête |
|
Bibliothèque |
|
Voir aussi
Commentaires
https://aka.ms/ContentUserFeedback.
Bientôt disponible : Tout au long de 2024, nous allons supprimer progressivement GitHub Issues comme mécanisme de commentaires pour le contenu et le remplacer par un nouveau système de commentaires. Pour plus d’informations, consultezEnvoyer et afficher des commentaires pour