D3DXIntersectTri 函式 (D3DX10math.h)
注意
D3DX 公用程式程式庫已被取代。 建議您改用 DirectXMath 。
計算光線和三角形的交集。
語法
BOOL D3DXIntersectTri(
_In_ const D3DXVECTOR3 *p0,
_In_ const D3DXVECTOR3 *p1,
_In_ const D3DXVECTOR3 *p2,
_In_ const D3DXVECTOR3 *pRayPos,
_In_ const D3DXVECTOR3 *pRayDir,
_Out_ FLOAT *pU,
_Out_ FLOAT *pV,
_Out_ FLOAT *pDist
);
參數
-
p0 [in]
-
類型:const D3DXVECTOR3*
D3DXVECTOR3結構的指標,描述第一個三角形頂點位置。
-
p1 [in]
-
類型:const D3DXVECTOR3*
D3DXVECTOR3結構的指標,描述第二個三角形頂點位置。
-
p2 [in]
-
類型:const D3DXVECTOR3*
D3DXVECTOR3結構的指標,描述第三個三角形頂點位置。
-
pRayPos [in]
-
類型:const D3DXVECTOR3*
D3DXVECTOR3結構的指標,指定光線開始的位置。
-
pRayDir [in]
-
類型:const D3DXVECTOR3*
D3DXVECTOR3結構的指標,指定光線的方向。
-
pU [out]
-
類型: FLOAT*
Barycentric 點擊座標 U.
-
pV [out]
-
類型: FLOAT*
Barycentric 點擊座標 V。
-
pDist [out]
-
類型: FLOAT*
光線交集參數距離。
傳回值
類型: BOOL
如果光線與三角形的區域交集,則會傳回 TRUE 。 否則會傳回 FALSE。
備註
平面 V1V2V3 中的任何點都可以以橫心座標 (U、V) 來表示。 參數 U 可控制將多少 V2 加權至結果,而參數 V 控制將多少 V3 加權至結果。 最後,[1 - (U + V) ] 的值會控制將多少 V1 加權至結果。
直心座標是一般座標的形式。 在此內容中,使用直方座標代表座標系統中的變更。 笛卡兒座標的 true 對於直心座標則為 true。
直心座標會根據三角形的頂點定義三角形內的點。 如需直心座標的更深入描述,請參閱 Mathworld 的 Barycentric 座標描述。
規格需求
需求 | 值 |
---|---|
標頭 |
|
程式庫 |
|
另請參閱