共用方式為


ID3DX10Mesh::IntersectSubset 方法

判斷光線是否與這個網格的子集交集。

語法

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
);

參數

AttribId [in]

類型: UINT

識別網格子集的屬性識別碼。

pRayPos [in]

類型: D3DXVECTOR3*

D3DXVECTOR3結構的指標,指定光線開始的位置。

pRayDir [in]

類型: D3DXVECTOR3*

D3DXVECTOR3結構的指標,指定光線的方向。

pHitCount [in]

類型: UINT*

光線與網格交集的次數。

pFaceIndex [in]

類型: UINT*

如果 pHit 為 TRUE,則指向最接近光線原點之臉部的索引值指標。

pU [in]

類型: float*

Barycentric 點擊座標 U 的指標。

pV [in]

類型: float*

Barycentric 點擊座標 V 的指標。

pDist [in]

類型: float*

光線交集參數距離的指標。

ppAllHits [out]

類型: ID3D10Blob**

ID3D10Blob 介面的指標,其中包含D3DX10_INTERSECT_INFO結構的陣列。 這是交集測試中發生的所有點擊清單。

傳回值

類型: HRESULT

傳回值是 Direct3D 10 傳回碼中列出的其中一個值。

備註

此 API 提供一種方式來瞭解三角形中的點和周圍,與三角形實際所在的位置無關。 此函式會使用下列方程式傳回產生的點:V1 + U (V2 - V1) + V (V3 - V1) 。

平面 V1V2V3 中的任何點都可以以橫心座標 (U、V) 來表示。 參數 U 可控制將多少 V2 加權至結果,而參數 V 控制將多少 V3 加權至結果。 最後,[1 - (U + V) ] 的值會控制將多少 V1 加權至結果。

直心座標是一般座標的形式。 在此內容中,使用直方座標代表座標系統中的變更。 笛卡兒座標的 true 對於直心座標則為 true。

直心座標會根據三角形的頂點定義三角形內的點。 如需直心座標的更深入描述,請參閱 Mathworld 的 Barycentric 座標描述

規格需求

需求
標頭
D3DX10.h
程式庫
D3DX10.lib

另請參閱

ID3DX10Mesh

D3DX 介面