Método ID3DXPRTEngine::ClosestRayIntersects

Usa un seguimiento de rayos eficaz en simulaciones de transferencia de radiancia (PRT) precaladas para determinar si un rayo interseca una malla. Si se encuentra una intersección, el método devuelve el índice de la cara de malla más cercana alcanzada por el rayo y las coordenadas barycéntricas del punto de intersección.

Sintaxis

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

Parámetros

pRayPos [in]

Tipo: const D3DXVECTOR3*

Puntero a una estructura D3DXVECTOR3 , especificando el punto donde comienza el rayo.

pRayDir [in]

Tipo: const D3DXVECTOR3*

Puntero a una estructura D3DXVECTOR3 , especificando la dirección normalizada del rayo.

pFaceIndex [in]

Tipo: DWORD*

Puntero al índice de la cara actual de la malla que primero golpea el rayo dado, en función de apilar todas las caras de malla bloqueadora delante de la malla actual.

pU [out]

Tipo: FLOAT*

Puntero a una coordenada de acierto barycéntrico, U, para el vértice 0 del triángulo.

pV [out]

Tipo: FLOAT*

Puntero a una coordenada de acierto barycéntrico, V, para el vértice 1 del triángulo.

pDist [out]

Tipo: FLOAT*

Puntero a la distancia del punto de intersección a lo largo del rayo.

Valor devuelto

Tipo: BOOL

Devuelve TRUE si el rayo interseca la malla actual; de lo contrario, devuelve FALSE.

Comentarios

Use ID3DXPRTEngine::SetMinMaxIntersection para establecer distancias mínimas y máximas de intersección con el rayo.

La coordenada barycéntrica del tercer vértice (vértice 2) del triángulo es 1 - ( U + V ).

Este método se ejecuta más lento que ID3DXPRTEngine::ShadowRayIntersects. Use ID3DXPRTEngine::ShadowRayIntersects si no se necesita la ubicación del punto de intersección.

Las coordenadas Barycéntricas definen un punto dentro de un triángulo en términos de los vértices del triángulo. Para obtener una descripción más detallada de las coordenadas barycéntricas, vea Descripción de coordenadas barycéntricas de Mathworld.

Requisitos

Requisito Value
Encabezado
D3DX9Mesh.h
Biblioteca
D3dx9.lib

Consulte también

ID3DXPRTEngine

ID3DXPRTEngine::ShadowRayIntersects

ID3DXPRTEngine::SetMinMaxIntersection