Freigeben über


ID3DXPRTEngine::ClosestRayIntersects-Methode

Verwendet effizientes Raytracing in vorberechneten PRT-Simulationen (Radiance Transfer), um zu bestimmen, ob ein Strahl ein Gitter überschneidet. Wenn eine Schnittmenge gefunden wird, gibt die Methode den Index der nächstgelegenen Gitterfläche zurück, die vom Strahl getroffen wird, und die baryzentrischen Koordinaten des Schnittpunkts.

Syntax

BOOL ClosestRayIntersects(
  [in]  const D3DXVECTOR3 *pRayPos,
  [in]  const D3DXVECTOR3 *pRayDir,
  [in]        DWORD       *pFaceIndex,
  [out]       FLOAT       *pU,
  [out]       FLOAT       *pV,
  [out]       FLOAT       *pDist
);

Parameter

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 normalisierte Richtung des Strahls angibt.

pFaceIndex [in]

Typ: DWORD*

Zeiger auf den Index der aktuellen Gitterseite, die zuerst vom angegebenen Strahl getroffen wird, basierend auf dem Stapeln aller Blockergitterflächen vor dem aktuellen Gitter.

pU [out]

Typ: FLOAT*

Zeiger auf die baryzentrische Trefferkoordinate U für Scheitelpunkt 0 des Dreiecks.

pV [out]

Typ: FLOAT*

Zeiger auf eine baryzentrische Trefferkoordinate V für Scheitelpunkt 1 des Dreiecks.

pDist [out]

Typ: FLOAT*

Zeiger auf den Abstand des Schnittpunkts entlang des Strahls.

Rückgabewert

Typ: BOOL

Gibt TRUE zurück, wenn der Strahl das aktuelle Gitter überschneidet; Andernfalls wird FALSE zurückgegeben.

Bemerkungen

Verwenden Sie ID3DXPRTEngine::SetMinMaxIntersection , um minimale und maximale Abstände der Schnittmenge mit dem Strahl festzulegen.

Die baryzentrische Koordinate des dritten Scheitelpunkts (Scheitelpunkt 2) des Dreiecks ist 1 - ( U + V ).

Diese Methode wird langsamer ausgeführt als ID3DXPRTEngine::ShadowRayIntersects. Verwenden Sie ID3DXPRTEngine::ShadowRayIntersects , wenn die Position des Schnittpunkts nicht benötigt wird.

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
D3DX9Mesh.h
Bibliothek
D3dx9.lib

Siehe auch

ID3DXPRTEngine

ID3DXPRTEngine::ShadowRayIntersects

ID3DXPRTEngine::SetMinMaxIntersection