Função D3DXIntersect
Determina se um raio se cruza com uma malha.
Sintaxe
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
Ponteiro para uma interface ID3DXBaseMesh , representando a malha a ser testada.
-
pRayPos [in]
-
Tipo: const D3DXVECTOR3*
Ponteiro para uma estrutura D3DXVECTOR3 , especificando o ponto em que o raio começa.
-
pRayDir [in]
-
Tipo: const D3DXVECTOR3*
Ponteiro para uma estrutura D3DXVECTOR3 , especificando a direção do raio.
-
pHit [out]
-
Tipo: BOOL*
Ponteiro para um BOOL. Se o raio interseccionar uma face triangular na malha, esse valor será definido como TRUE. Caso contrário, esse valor será definido como FALSE.
-
pFaceIndex [out]
-
Tipo: DWORD*
Ponteiro para um valor de índice da face mais próxima da origem do raio, se pHit for TRUE.
-
pU [out]
-
Tipo: FLOAT*
Ponteiro para uma coordenada de clique barycentric, U.
-
pV [out]
-
Tipo: FLOAT*
Ponteiro para uma coordenada de clique barycentric, V.
-
pDist [out]
-
Tipo: FLOAT*
Ponteiro para uma distância de parâmetro de interseção de raios.
-
ppAllHits [out]
-
Tipo: LPD3DXBUFFER*
Ponteiro para um objeto ID3DXBuffer , que contém uma matriz de estruturas D3DXINTERSECTINFO .
-
pCountOfHits [out]
-
Tipo: DWORD*
Ponteiro para um DWORD que contém o número de entradas na matriz ppAllHits.
Valor retornado
Tipo: HRESULT
Se a função for bem-sucedida, o valor retornado será D3D_OK. Se a função falhar, o valor retornado poderá ser: E_OUTOFMEMORY.
Comentários
A função D3DXIntersect fornece uma maneira de entender pontos dentro e ao redor de um triângulo, independentemente de onde o triângulo está realmente localizado. Essa função retorna o ponto resultante usando a seguinte equação: V1 + U(V2 - V1) + V(V3 - V1).
Qualquer ponto no plano V1V2V3 pode ser representado pela coordenada barycentrica (U,V). O parâmetro U controla a quantidade de V2 ponderada no resultado e o parâmetro V controla a quantidade de V3 ponderada no resultado. Por fim, o valor de [1 - (U + V)] controla a quantidade de V1 ponderada no resultado.
As coordenadas barycentricas são uma forma de coordenadas gerais. Nesse contexto, o uso de coordenadas barycentricas representa uma alteração nos sistemas de coordenadas. O que vale para coordenadas cartesianas é verdadeiro para coordenadas barycentricas.
As coordenadas barycentricas definem um ponto dentro de um triângulo em termos dos vértices do triângulo. Para obter uma descrição mais detalhada das coordenadas barycentricas, confira Descrição das Coordenadas Barycentricas do Mathworld.
Requisitos
Requisito | Valor |
---|---|
parâmetro |
|
Biblioteca |
|
Confira também