D3DXIntersectTri 関数 (D3DX9Mesh.h)

レイと三角形の交差部分を計算します。

構文

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*

2 番目の三角形の頂点位置を記述する D3DXVECTOR3 構造体へのポインター。

p2 [in]

型: const D3DXVECTOR3*

D3DXVECTOR3 構造体へのポインター。3 番目の三角形の頂点位置を記述します。

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 を返します

解説

D3DXIntersect 関数は、三角形が実際に配置されている場所とは無関係に、三角形内および三角形の周囲の点を理解する方法を提供します。 この関数は、V1 + U(V2 - V1) + V(V3 - V1) の数式を使用して、結果のポイントを返します。

平面 V1V2V3 内の任意の点は、barycentric 座標 (U,V) で表すことができます。 パラメーター U は、結果に重み付けされる V2 の量を制御し、パラメーター V は結果に加重される V3 の量を制御します。 最後に、[1 - (U + V)] の値は、結果に加重される V1 の量を制御します。

Barycentric 座標は、一般的な座標の形式です。 このコンテキストでは、barycentric 座標を使用すると、座標系の変化を表します。 デカルト座標に true を保持するものは、バリセントリック座標の場合は true を保持します。

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

要件

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

関連項目

メッシュ関数