Función D3DXIntersect
Determina si un rayo se interseca con una malla.
Sintaxis
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
);
Parámetros
-
pMesh [in]
-
Tipo: LPD3DXBASEMESH
Puntero a una interfaz ID3DXBaseMesh , que representa la malla que se va a probar.
-
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 del rayo.
-
pHit [out]
-
Tipo: BOOL*
Puntero a una BOOL. Si el rayo interseca una cara triangular en la malla, este valor se establecerá en TRUE. De lo contrario, este valor se establece en FALSE.
-
pFaceIndex [out]
-
Tipo: DWORD*
Puntero a un valor de índice de la cara más cercana al origen del rayo, si pHit es TRUE.
-
pU [out]
-
Tipo: FLOAT*
Puntero a una coordenada de acierto barycéntrico, U.
-
pV [out]
-
Tipo: FLOAT*
Puntero a una coordenada de acierto barycéntrico, V.
-
pDist [out]
-
Tipo: FLOAT*
Puntero a una distancia de parámetro de intersección de rayos.
-
ppAllHits [out]
-
Tipo: LPD3DXBUFFER*
Puntero a un objeto ID3DXBuffer , que contiene una matriz de estructuras D3DXINTERSECTINFO .
-
pCountOfHits [out]
-
Tipo: DWORD*
Puntero a un DWORD que contiene el número de entradas de la matriz ppAllHits.
Valor devuelto
Tipo: HRESULT
Si la función se realiza correctamente, el valor devuelto se D3D_OK. Si se produce un error en la función, el valor devuelto puede ser: E_OUTOFMEMORY.
Comentarios
La función D3DXIntersect proporciona una manera de comprender los puntos de un triángulo, independientemente de dónde se encuentra realmente el triángulo. Esta función devuelve el punto resultante mediante la siguiente ecuación: V1 + U(V2 - V1) + V(V3 - V1).
Cualquier punto del plano V1V2V3 se puede representar mediante la coordenada barycéntrica (U,V). El parámetro U controla cuánto se pondera V2 en el resultado y el parámetro V controla cuánto se pondera en el resultado. Por último, el valor de [1 - (U + V)] controla cuánto V1 se pondera en el resultado.
Las coordenadas barycéntricas son una forma de coordenadas generales. En este contexto, el uso de coordenadas barycéntricas representa un cambio en los sistemas de coordenadas. Lo que es cierto para las coordenadas cartesianas es true para las coordenadas barícéntricas.
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 |
|
Biblioteca |
|
Consulte también