ID3DX10Mesh::IntersectSubset-Methode

Bestimmt, ob sich ein Strahl mit einer Teilmenge dieses Gitters überschneidet.

Syntax

HRESULT IntersectSubset(
  [in]  UINT        AttribId,
  [in]  D3DXVECTOR3 *pRayPos,
  [in]  D3DXVECTOR3 *pRayDir,
  [in]  UINT        *pHitCount,
  [in]  UINT        *pFaceIndex,
  [in]  float       *pU,
  [in]  float       *pV,
  [in]  float       *pDist,
  [out] ID3D10Blob  **ppAllHits
);

Parameter

AttribId [in]

Typ: UINT

Attribut-ID, die die Teilmenge des Gitternetzes identifiziert.

pRayPos [in]

Typ: D3DXVECTOR3*

Zeiger auf eine D3DXVECTOR3-Struktur , wobei der Punkt angegeben wird, an dem der Strahl beginnt.

pRayDir [in]

Typ: D3DXVECTOR3*

Zeiger auf eine D3DXVECTOR3-Struktur , die die Richtung des Strahls angibt.

pHitCount [in]

Typ: UINT*

Die Anzahl der Überschneiden des Strahls mit dem Gitter.

pFaceIndex [in]

Typ: UINT*

Zeiger auf einen Indexwert des Gesichts, der dem Strahlenursprung am nächsten ist, wenn pHit TRUE ist.

pU [in]

Typ: float*

Zeiger auf eine baryzentrische Trefferkoordinate, U.

pV [in]

Typ: float*

Zeiger auf eine baryzentrische Trefferkoordinate, V.

pDist [in]

Typ: float*

Zeiger auf den Abstand eines Strahlschnittparameters.

ppAllHits [out]

Typ: ID3D10Blob**

Zeiger auf eine ID3D10Blob-Schnittstelle, die ein Array von D3DX10_INTERSECT_INFO-Strukturen enthält. Dies ist eine Liste aller Treffer, die im Schnittpunkttest aufgetreten sind.

Rückgabewert

Typ: HRESULT

Der Rückgabewert ist einer der In Direct3D 10-Rückgabecodes aufgeführten Werte.

Bemerkungen

Diese API 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)] die Gewichtung von V1 in das Ergebnis.

Baryzentrische Koordinaten sind eine Form allgemeiner Koordinaten. In diesem Kontext stellt die Verwendung baryzentrischer 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 baryzentrischer Koordinaten finden Sie unter Mathworlds Baryzentrische Koordinatenbeschreibung.

Anforderungen

Anforderung Wert
Header
D3DX10.h
Bibliothek
D3DX10.lib

Siehe auch

ID3DX10Mesh

D3DX-Schnittstellen