Partager via


ID3DXPRTEngine::ClosestRayIntersects, méthode

Utilise le suivi de rayons efficace dans les simulations de transfert de rayonnement précalculé (PRT) pour déterminer si un rayon croise un maillage. Si une intersection est trouvée, la méthode retourne l’index du visage de maillage le plus proche atteint par le rayon et les coordonnées barycentriques du point d’intersection.

Syntaxe

BOOL ClosestRayIntersects(
  [in]  const D3DXVECTOR3 *pRayPos,
  [in]  const D3DXVECTOR3 *pRayDir,
  [in]        DWORD       *pFaceIndex,
  [out]       FLOAT       *pU,
  [out]       FLOAT       *pV,
  [out]       FLOAT       *pDist
);

Paramètres

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 normalisée du rayon.

pFaceIndex [in]

Type : DWORD*

Pointeur vers l’index de la face de maillage actuelle qui est frappée pour la première fois par le rayon donné, en fonction de l’empilement de toutes les faces de maillage de bloqueur devant le maillage actuel.

pU [out]

Type : FLOAT*

Pointeur vers une coordonnée d’accès barycentrique, U, pour le sommet 0 du triangle.

pV [out]

Type : FLOAT*

Pointeur vers une coordonnée d’accès barycentrique, V, pour le sommet 1 du triangle.

pDist [out]

Type : FLOAT*

Pointeur vers la distance du point d’intersection le long du rayon.

Valeur retournée

Type : BOOL

Retourne TRUE si le rayon croise le maillage actuel ; dans le cas contraire, retourne FALSE.

Notes

Utilisez ID3DXPRTEngine::SetMinMaxIntersection pour définir les distances minimales et maximales d’intersection avec le rayon.

La coordonnée barycentrique du troisième sommet (sommet 2) du triangle est 1 - ( U + V ).

Cette méthode s’exécute plus lentement que ID3DXPRTEngine::ShadowRayIntersects. Utilisez ID3DXPRTEngine::ShadowRayIntersects si l’emplacement du point d’intersection n’est pas nécessaire.

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
D3DX9Mesh.h
Bibliothèque
D3dx9.lib

Voir aussi

ID3DXPRTEngine

ID3DXPRTEngine::ShadowRayIntersects

ID3DXPRTEngine::SetMinMaxIntersection