Función D3DXIntersectSubset
Intersecta el rayo especificado con el subconjunto de malla especificado. Esto proporciona una funcionalidad similar a D3DXIntersect.
Sintaxis
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
);
Parámetros
-
pMesh [in]
-
Tipo: LPD3DXBASEMESH
Puntero a una interfaz ID3DXBaseMesh , que representa la malla que se va a probar. La malla debe estar ordenada por atributos.
-
AttribId [in]
-
Tipo: DWORD
Identificador de atributo del subconjunto con el que se va a intersecar.
-
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 un 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*
Matriz de estructuras D3DXINTERSECTINFO , que representan todos los aciertos, no solo aciertos más cercanos.
-
pCountOfHits [out]
-
Tipo: DWORD*
Número de elementos de la matriz devueltas por ppAllHits.
Valor devuelto
Tipo: HRESULT
Si la función se ejecuta correctamente, el valor devuelto es D3D_OK. Si se produce un error en la función, el valor devuelto puede ser el siguiente: E_OUTOFMEMORY.
Observaciones
La función D3DXIntersectSubset 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 V2 se pondera en el resultado y el parámetro V controla cuánto V3 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 barycéntricas.
Las coordenadas Barycéntricas definen un punto dentro de un triángulo en términos de vértices del triángulo. Para obtener una descripción más detallada de las coordenadas barycéntricas, consulte descripción de coordenadas barycéntricas de Mathworld.
Requisitos
Requisito | Value |
---|---|
Encabezado |
|
Biblioteca |
|
Consulte también