Fonction D3DXIntersectSubset
Croise le rayon spécifié avec le sous-ensemble de maillage donné. Cela fournit des fonctionnalités similaires à D3DXIntersect.
Syntaxe
HRESULT D3DXIntersectSubset(
_In_ LPD3DXBASEMESH pMesh,
_In_ DWORD AttribId,
_In_ const D3DXVECTOR3 *pRayPos,
_In_ const D3DXVECTOR3 *pRayDir,
_Out_ BOOL *pHit,
_Out_ DWORD *pFaceIndex,
_Out_ FLOAT *pU,
_Out_ FLOAT *pV,
_Out_ FLOAT *pDist,
_Out_ LPD3DXBUFFER *ppAllHits,
_Out_ DWORD *pCountOfHits
);
Paramètres
-
pMesh [in]
-
Type : LPD3DXBASEMESH
Pointeur vers une interface ID3DXBaseMesh , représentant le maillage à tester. Le maillage doit être trié par attribut.
-
AttribId [in]
-
Type : DWORD
Identificateur d’attribut du sous-ensemble à croiser.
-
pRayPos [in]
-
Type : const D3DXVECTOR3*
Pointeur vers une structure D3DXVECTOR3 , spécifiant le point où commence le rayon.
-
pRayDir [in]
-
Type : const D3DXVECTOR3*
Pointeur vers une structure D3DXVECTOR3 , spécifiant la direction du rayon.
-
pHit [out]
-
Type : BOOL*
Pointeur vers un boOL. Si le rayon croise une face triangulaire sur le maillage, cette valeur est définie sur TRUE. Sinon, cette valeur est définie sur FALSE.
-
pFaceIndex [out]
-
Type : DWORD*
Pointeur vers une valeur d’index de la face la plus proche de l’origine du rayon, si pHit a la valeur TRUE.
-
pU [out]
-
Type : FLOAT*
Pointeur vers une coordonnée d’accès barycentrique, U.
-
pV [out]
-
Type : FLOAT*
Pointeur vers une coordonnée d’accès barycentrique, V.
-
pDist [out]
-
Type : FLOAT*
Pointeur vers une distance de paramètre d’intersection de rayon.
-
ppAllHits [out]
-
Type : LPD3DXBUFFER*
Tableau de structures D3DXINTERSECTINFO , représentant toutes les correspondances, pas seulement les accès les plus proches.
-
pCountOfHits [out]
-
Type : DWORD*
Nombre d’éléments dans le tableau retournés par ppAllHits.
Valeur retournée
Type : HRESULT
Si la fonction réussit, la valeur de retour est D3D_OK. Si la fonction échoue, la valeur de retour peut être la valeur suivante : E_OUTOFMEMORY.
Notes
La fonction D3DXIntersectSubset permet de comprendre les points dans et autour d’un triangle, indépendamment de l’emplacement réel du triangle. Cette fonction retourne le point résultant à l’aide de l’équation suivante : V1 + U(V2 - V1) + V(V3 - V1).
N’importe quel point du plan V1V2V3 peut être représenté par la coordonnée barycentrique (U,V). Le paramètre U contrôle la pondération de V2 dans le résultat et le paramètre V contrôle la pondération de V3 dans le résultat. Enfin, la valeur de [1 - (U + V)] contrôle la quantité de V1 pondérée dans le résultat.
Les coordonnées barycentriques sont une forme de coordonnées générales. Dans ce contexte, l’utilisation de coordonnées barycentriques représente un changement dans les systèmes de coordonnées. Ce qui est vrai pour les coordonnées cartésiennes est vrai pour les coordonnées barycentriques.
Les coordonnées barycentriques définissent un point à l’intérieur d’un triangle en termes de sommets du triangle. Pour obtenir une description plus détaillée des coordonnées barycentriques, consultez Description des coordonnées barycentriques de Mathworld.
Spécifications
Condition requise | Valeur |
---|---|
En-tête |
|
Bibliothèque |
|
Voir aussi