D3DXIntersect fonction)
Détermine si un rayon croise une maille.
Syntaxe
HRESULT D3DXIntersect(
_In_ LPD3DXBASEMESH pMesh,
_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 [ dans]
-
Type : LPD3DXBASEMESH
Pointeur vers une interface ID3DXBaseMesh représentant le maillage à tester.
-
pRayPos [ dans]
-
Type : const D3DXVECTOR3 *
Pointeur vers une structure D3DXVECTOR3 , en spécifiant le point de départ du rayon.
-
pRayDir [ dans]
-
Type : const D3DXVECTOR3 *
Pointeur vers une structure D3DXVECTOR3 , en spécifiant la direction du rayon.
-
pHit [ à]
-
Type : bool*
Pointeur vers un booléen. 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 [ à]
-
Type : DWORD*
Pointeur vers une valeur d’index du visage le plus proche de l’origine du rayon, si pHit a la valeur true.
-
pu [ à]
-
Type : float*
Pointeur vers une coordonnée d’accès Barycentric, U.
-
PV [ à]
-
Type : float*
Pointeur vers une coordonnée d’accès Barycentric, V.
-
pDist [ à]
-
Type : float*
Pointeur désignant une distance de paramètres d’intersection de rayon.
-
ppAllHits [ à]
-
Type : LPD3DXBUFFER*
Pointeur vers un objet ID3DXBuffer , contenant un tableau de structures D3DXINTERSECTINFO .
-
pCountOfHits [ à]
-
Type : DWORD*
Pointeur vers une valeur DWORD qui contient le nombre d’entrées dans le tableau ppAllHits.
Valeur de retour
Type : HRESULT
Si la fonction est réussie, la valeur de retour est D3D _ OK. Si la fonction échoue, la valeur de retour peut être : E _ OUTOFMEMORY.
Notes
La fonction D3DXIntersect fournit un moyen de comprendre les points dans et autour d’un triangle, indépendamment de l’endroit où le triangle est réellement situé. Cette fonction retourne le point résultant à l’aide de l’équation suivante : v1 + U (V2-V1) + V (v3-v1).
Tout point dans le plan V1V2V3 peut être représenté par la coordonnée Barycentric (U, V). Le paramètre U contrôle combien v2 est pondéré dans le résultat, et le paramètre V contrôle combien v3 est pondéré dans le résultat. Enfin, la valeur de [ 1-(U + V) ] contrôle la quantité de valeurs v1 pondérée dans le résultat.
Les coordonnées Barycentric sont une forme de coordonnées générales. Dans ce contexte, l’utilisation de coordonnées Barycentric représente une modification des systèmes de coordonnées. Ce qui est vrai pour les coordonnées cartésiennes contient la valeur true pour les coordonnées Barycentric.
Les coordonnées Barycentric définissent un point à l’intérieur d’un triangle en termes de sommets du triangle. Pour une description plus détaillée des coordonnées Barycentric, consultez la description des coordonnées Barycentric de MathWorld.
Spécifications
| Condition requise | Valeur |
|---|---|
| En-tête |
|
| Bibliothèque |
|