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」を参照してください。
要件
要件 | 値 |
---|---|
ヘッダー |
|
ライブラリ |
|
こちらもご覧ください