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 坐标说明。
要求
要求 | 值 |
---|---|
标头 |
|
库 |
|
请参阅