Método ID3DXPRTEngine::ClosestRayIntersects

Usa o rastreamento de raio eficiente em simulações de PRT (transferência de radiação pré-computada) para determinar se um raio cruza uma malha. Se uma interseção for encontrada, o método retornará o índice da face de malha mais próxima atingida pelo raio e pelas coordenadas barycentricas do ponto de interseção.

Sintaxe

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*

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 normalizada do raio.

pFaceIndex [in]

Tipo: DWORD*

Ponteiro para o índice da face da malha atual que é atingida pela primeira vez pelo raio fornecido, com base no empilhamento de todas as faces de malha do bloqueador na frente da malha atual.

pU [out]

Tipo: FLOAT*

Ponteiro para uma coordenada de clique barycentric, U, para o vértice 0 do triângulo.

pV [out]

Tipo: FLOAT*

Ponteiro para uma coordenada de clique barycentric, V, para o vértice 1 do triângulo.

pDist [out]

Tipo: FLOAT*

Ponteiro para a distância do ponto de interseção ao longo do raio.

Valor retornado

Tipo: BOOL

Retorna TRUE se o raio cruza a malha atual; caso contrário, retornará FALSE.

Comentários

Use ID3DXPRTEngine::SetMinMaxIntersection para definir distâncias mínimas e máximas de interseção com o raio.

A coordenada barycentrica do terceiro vértice (vértice 2) do triângulo é 1 - ( U + V ).

Esse método é executado mais lento que ID3DXPRTEngine::ShadowRayIntersects. Use ID3DXPRTEngine::ShadowRayIntersects se o local do ponto de interseção não for necessário.

As coordenadas barycentric 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
D3DX9Mesh.h
Biblioteca
D3dx9.lib

Confira também

ID3DXPRTEngine

ID3DXPRTEngine::ShadowRayIntersects

ID3DXPRTEngine::SetMinMaxIntersection