次の方法で共有


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**

D3DX10_INTERSECT_INFO構造体の配列を含む ID3D10Blob インターフェイスへのポインター。 これは、交差テストで発生したすべてのヒットの一覧です。

戻り値

種類: HRESULT

戻り値は、 Direct3D 10 リターン コードに記載されている値のいずれかです。

注釈

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

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

Barycentric 座標は、一般的な座標の一種です。 このコンテキストでは、barycentric 座標の使用は座標系の変化を表します。 デカルト座標に対して true を保持するものは、barycentric 座標の場合は true を保持します。

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

要件

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

こちらもご覧ください

ID3DX10Mesh

D3DX インターフェイス