ID3DXPRTEngine::ClosestRayIntersects 方法
在預先計算的光線傳輸中使用有效率的光線追蹤 (PRT) 模擬,以判斷光線是否與網格交集。 如果找到交集,此方法會傳回最接近網格臉部點擊的索引,而光線和交集點的直心座標。
語法
BOOL ClosestRayIntersects(
[in] const D3DXVECTOR3 *pRayPos,
[in] const D3DXVECTOR3 *pRayDir,
[in] DWORD *pFaceIndex,
[out] FLOAT *pU,
[out] FLOAT *pV,
[out] FLOAT *pDist
);
參數
-
pRayPos [in]
-
類型:const D3DXVECTOR3*
D3DXVECTOR3結構的指標,指定光線開始的位置。
-
pRayDir [in]
-
類型:const D3DXVECTOR3*
D3DXVECTOR3結構的指標,指定光線的正規化方向。
-
pFaceIndex [in]
-
類型: DWORD*
根據在目前網格前面堆疊所有封鎖網格臉部,指向目前網格第一次點擊之目前網格面的索引指標。
-
pU [out]
-
類型: FLOAT*
三角形頂點 0 的直方點擊座標 U 指標。
-
pV [out]
-
類型: FLOAT*
三角形頂點 1 的直方點擊座標 V 指標。
-
pDist [out]
-
類型: FLOAT*
指向光線上交集點距離的指標。
傳回值
類型: BOOL
如果光線與目前的網格交集,則會傳回 TRUE ;否則會傳回 FALSE。
備註
使用 ID3DXPRTEngine::SetMinMaxIntersection 來設定與光線交集的最小和最大距離。
三角形第三個頂點 (頂點 2) 的直心座標為 1 - ( U + V ) 。
這個方法的執行速度比 ID3DXPRTEngine::ShadowRayIntersects慢。 如果不需要交集點的位置,請使用 ID3DXPRTEngine::ShadowRayIntersects 。
直心座標會根據三角形頂點定義三角形內的點。 如需直心座標的更深入描述,請參閱 Mathworld 的 Barycentric 座標描述。
規格需求
需求 | 值 |
---|---|
標頭 |
|
程式庫 |
|
另請參閱