ID3DX10Mesh::Intersect 方法
判斷光線是否與這個網格交集。
語法
HRESULT Intersect(
[in] D3DXVECTOR3 *pRayPos,
[in] D3DXVECTOR3 *pRayDir,
[in] UINT *pHitCount,
[in] UINT *pFaceIndex,
[in] float *pU,
[in] float *pV,
[in] float *pDist,
[out] ID3D10Blob **ppAllHits
);
參數
-
pRayPos [in]
-
類型: D3DXVECTOR3*
D3DXVECTOR3結構的指標,指定光線開始的位置。
-
pRayDir [in]
-
類型: D3DXVECTOR3*
D3DXVECTOR3結構的指標,指定光線的方向。
-
pHitCount [in]
-
類型: UINT*
光線與網格交集的次數。
-
pFaceIndex [in]
-
類型: UINT*
如果 pHit 為 TRUE,則表示最接近光線來源之臉部的索引值指標。
-
pU [in]
-
類型: float*
直方點擊座標 U 的指標。
-
pV [in]
-
類型: float*
直方點擊座標 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 的內容。
直心座標會根據三角形頂點定義三角形內的點。 如需直心座標的更深入描述,請參閱 Mathworld 的 Barycentric 座標描述。
規格需求
需求 | 值 |
---|---|
標頭 |
|
程式庫 |
|
另請參閱