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 |
|
Libreria |
|
Vedi anche