D3DXIntersectSubset-Funktion
Überschneidet den angegebenen Strahl mit der angegebenen Gitterteilmenge. Dies bietet ähnliche Funktionen wie D3DXIntersect.
Syntax
HRESULT D3DXIntersectSubset(
_In_ LPD3DXBASEMESH pMesh,
_In_ DWORD AttribId,
_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. Das Gitter muss mit einem Attribut sortiert werden.
-
AttribId [in]
-
Typ: DWORD
Attributbezeichner der Teilmenge, mit der sich überschneiden soll.
-
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*
Array von D3DXINTERSECTINFO-Strukturen , die alle Treffer darstellen, nicht nur die nächsten Treffer.
-
pCountOfHits [out]
-
Typ: DWORD*
Anzahl der Elemente im Array, die von ppAllHits zurückgegeben werden.
Rückgabewert
Typ: HRESULT
Wenn die Funktion erfolgreich ist, wird der Rückgabewert D3D_OK. Wenn die Funktion fehlschlägt, kann der Rückgabewert der folgende Wert sein: E_OUTOFMEMORY.
Bemerkungen
Die D3DXIntersectSubset-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