Share via


Funzione D3DXIntersect

Determina se un raggio si interseca con una mesh.

Sintassi

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
);

Parametri

pMesh [in]

Tipo: LPD3DXBASEMESH

Puntatore a un'interfaccia ID3DXBaseMesh che rappresenta la mesh da testare.

pRayPos [in]

Tipo: const D3DXVECTOR3*

Puntatore a una struttura D3DXVECTOR3 , specificando il punto in cui inizia il raggio.

pRayDir [in]

Tipo: const D3DXVECTOR3*

Puntatore a una struttura D3DXVECTOR3 , specificando la direzione del raggio.

pHit [out]

Tipo: BOOL*

Puntatore a un valore BOOL. Se il raggio interseca una faccia triangolare sulla mesh, questo valore verrà impostato su TRUE. In caso contrario, questo valore è impostato su FALSE.

pFaceIndex [out]

Tipo: DWORD*

Puntatore a un valore di indice del viso più vicino all'origine del raggio, se pHit è TRUE.

pU [out]

Tipo: FLOAT*

Puntatore a una coordinata di hit barycentrica, U.

pV [out]

Tipo: FLOAT*

Puntatore a una coordinata di hit barycentrica, V.

pDist [out]

Tipo: FLOAT*

Puntatore a una distanza del parametro di intersezione raggio.

ppAllHits [out]

Tipo: LPD3DXBUFFER*

Puntatore a un oggetto ID3DXBuffer contenente una matrice di strutture D3DXINTERSECTINFO .

pCountOfHits [out]

Tipo: DWORD*

Puntatore a un DWORD contenente il numero di voci nella matrice ppAllHits.

Valore restituito

Tipo: HRESULT

Se la funzione ha esito positivo, il valore restituito viene D3D_OK. Se la funzione ha esito negativo, il valore restituito può essere: E_OUTOFMEMORY.

Commenti

La funzione D3DXIntersect consente di comprendere i punti in e intorno a un triangolo, indipendentemente dalla posizione in cui si trova effettivamente il triangolo. Questa funzione restituisce il punto risultante usando l'equazione seguente: V1 + U(V2 - V1) + V(V3 - V1).

Qualsiasi punto del piano V1V2V3 può essere rappresentato dalla coordinata barycentrica (U,V). Il parametro U controlla la quantità di V2 ponderata nel risultato e il parametro V controlla la quantità di V3 ponderata nel risultato. Infine, il valore di [1 - (U + V)] controlla la quantità di V1 ponderata nel risultato.

Le coordinate bariche sono una forma di coordinate generali. In questo contesto, l'uso di coordinate bariche rappresenta una modifica nei sistemi di coordinate. Ciò che vale per le coordinate cartesiane vale per le coordinate bariche.

Le coordinate bariche definiscono un punto all'interno di un triangolo in termini di vertici del triangolo. Per una descrizione più approfondita delle coordinate barycentriche, vedere Descrizione delle coordinate bariche di Mathworld.

Requisiti

Requisito Valore
Intestazione
D3DX9Mesh.h
Libreria
D3dx9.lib

Vedi anche

Funzioni mesh