D3DXIntersectTri 函数 (D3DX10math.h)

注意

D3DX 实用工具库已弃用。 建议改用 DirectXMath

计算光线和三角形的交集。

语法

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
);

parameters

p0 [in]

类型: const D3DXVECTOR3*

指向 D3DXVECTOR3 结构的指针,描述第一个三角形顶点位置。

p1 [in]

类型: const D3DXVECTOR3*

指向 D3DXVECTOR3 结构的指针,描述第二个三角形顶点位置。

p2 [in]

类型: const D3DXVECTOR3*

指向 D3DXVECTOR3 结构的指针,描述第三个三角形顶点位置。

pRayPos [in]

类型: const D3DXVECTOR3*

指向 D3DXVECTOR3 结构的指针,指定光线开始的点。

pRayDir [in]

类型: const D3DXVECTOR3*

指向 D3DXVECTOR3 结构的指针,指定光线的方向。

pU [out]

类型: FLOAT*

Barycentric 命中坐标,U.

pV [out]

类型: FLOAT*

重中心命中坐标,V.

pDist [out]

类型: FLOAT*

光线交集参数距离。

返回值

类型: BOOL

如果光线与三角形的区域相交,则返回 TRUE 。 否则,返回 FALSE

备注

平面 V1V2V3 中的任何点都可以由 (U、V) 的偏心坐标表示。 参数 U 控制 V2 在结果中加权的量,参数 V 控制 V3 在结果中加权的量。 最后,值 [1 - (U + V) ] 控制 V1 在结果中的权重。

Barycentric 坐标是一种通用坐标形式。 在此上下文中,使用大中心坐标表示坐标系的变化。 对于大中心坐标,笛卡尔坐标为 true 的内容为 true。

大中心坐标根据三角形的顶点定义三角形内的点。 有关 Barycentric 坐标的更深入说明,请参阅 Mathworld 的 Barycentric 坐标说明

要求

要求
标头
D3DX10math.h

D3DX10.lib

请参阅

网格函数