D3DXIntersect-Funktion
Bestimmt, ob sich ein Strahl mit einem Gitter überschneidet.
Syntax
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
);
Parameter
-
pMesh [in]
-
Typ: LPD3DXBASEMESH
Zeiger auf eine ID3DXBaseMesh-Schnittstelle , die das zu testende Gitter darstellt.
-
pRayPos [in]
-
Typ: const D3DXVECTOR3*
Zeiger auf eine D3DXVECTOR3-Struktur , der den Punkt angibt, an dem der Strahl beginnt.
-
pRayDir [in]
-
Typ: const D3DXVECTOR3*
Zeiger auf eine D3DXVECTOR3-Struktur , die die Richtung des Strahls angibt.
-
pHit [out]
-
Typ: BOOL*
Zeiger auf eine BOOL. Wenn der Strahl eine dreieckige Seite im Gitter überschneidet, wird dieser Wert auf TRUE festgelegt. Andernfalls wird dieser Wert auf FALSE festgelegt.
-
pFaceIndex [out]
-
Typ: DWORD*
Zeiger auf einen Indexwert des Gesichts, der dem Strahlenursprung am nächsten ist, wenn pHit TRUE ist.
-
pU [out]
-
Typ: FLOAT*
Zeiger auf eine baryzentrische Trefferkoordinate, U.
-
pV [out]
-
Typ: FLOAT*
Zeiger auf eine baryzentrische Trefferkoordinate, V.
-
pDist [out]
-
Typ: FLOAT*
Zeiger auf den Abstand eines Strahlschnittparameters.
-
ppAllHits [out]
-
Typ: LPD3DXBUFFER*
Zeiger auf ein ID3DXBuffer-Objekt , das ein Array von D3DXINTERSECTINFO-Strukturen enthält.
-
pCountOfHits [out]
-
Typ: DWORD*
Zeiger auf ein DWORD, das die Anzahl der Einträge im ppAllHits-Array enthält.
Rückgabewert
Typ: HRESULT
Wenn die Funktion erfolgreich ist, wird der Rückgabewert D3D_OK. Wenn die Funktion fehlschlägt, kann der Rückgabewert sein: E_OUTOFMEMORY.
Bemerkungen
Die D3DXIntersect-Funktion bietet eine Möglichkeit, Punkte in und um ein Dreieck zu verstehen, unabhängig davon, wo sich das Dreieck tatsächlich befindet. Diese Funktion gibt den resultierenden Punkt mithilfe der folgenden Gleichung zurück: V1 + U(V2 - V1) + V(V3 - V1).
Jeder Punkt auf der Ebene V1V2V3 kann durch die baryzentrische Koordinate (U,V) dargestellt werden. Der Parameter U steuert, wie viel V2 in das Ergebnis gewichtet wird, und der Parameter V steuert, wie viel V3 in das Ergebnis gewichtet wird. Schließlich steuert der Wert von [1 - (U + V)], wie viel V1 in das Ergebnis gewichtet wird.
Baryzentrische Koordinaten sind eine Form von allgemeinen Koordinaten. In diesem Kontext stellt die Verwendung von baryzentrischen Koordinaten eine Änderung der Koordinatensysteme dar. Was für kartesische Koordinaten gilt, gilt für baryzentrische Koordinaten.
Baryzentrische Koordinaten definieren einen Punkt innerhalb eines Dreiecks in Bezug auf die Scheitelpunkte des Dreiecks. Eine ausführlichere Beschreibung der baryzentrischen Koordinaten finden Sie unter Mathworlds Baryzentrische Koordinatenbeschreibung.
Anforderungen
Anforderung | Wert |
---|---|
Header |
|
Bibliothek |
|
Siehe auch