次の方法で共有


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 を使用して、レイとの交差の最小距離と最大距離を設定します。

三角形の 3 番目の頂点 (頂点 2) のバーセントリック座標は 1 - ( U + V ) です。

このメソッドの実行速度は 、ID3DXPRTEngine::ShadowRayIntersects よりも遅くなります。 交差点の位置が不要な場合は、 ID3DXPRTEngine::ShadowRayIntersects を使用します。

Barycentric 座標は、三角形の頂点の観点から三角形内の点を定義します。 バーセントリック座標の詳細については、「 Mathworld の Barycentric Coordinates Description」を参照してください。

要件

要件
ヘッダー
D3DX9Mesh.h
ライブラリ
D3dx9.lib

こちらもご覧ください

ID3DXPRTEngine

ID3DXPRTEngine::ShadowRayIntersects

ID3DXPRTEngine::SetMinMaxIntersection