ID3DX10Mesh::IntersectSubset 方法
确定光线是否与该网格的子集相交。
语法
HRESULT IntersectSubset(
[in] UINT AttribId,
[in] D3DXVECTOR3 *pRayPos,
[in] D3DXVECTOR3 *pRayDir,
[in] UINT *pHitCount,
[in] UINT *pFaceIndex,
[in] float *pU,
[in] float *pV,
[in] float *pDist,
[out] ID3D10Blob **ppAllHits
);
parameters
-
AttribId [in]
-
类型: UINT
标识网格子集的属性 ID。
-
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**
指向 ID3D10Blob 接口的指针,其中包含 D3DX10_INTERSECT_INFO 结构的数组。 这是交集测试中发生的所有命中列表。
返回值
类型: HRESULT
返回值是 Direct3D 10 返回代码中列出的值之一。
备注
此 API 提供了一种方法来了解三角形中和周围的点,与三角形的实际位置无关。 此函数使用以下公式返回结果点:V1 + U (V2 - V1) + V (V3 - V1) 。
平面 V1V2V3 中的任何点都可以由大中心坐标 (U,V) 表示。 参数 U 控制 V2 在结果中加权多少,参数 V 控制 V3 在结果中加权的量。 最后,值 [1 - (U + V) ] 控制 V1 在结果中的权重。
大中心坐标是一般坐标的一种形式。 在此上下文中,使用大中心坐标表示坐标系的变化。 对于笛卡尔坐标为 true,对于偏心坐标则为 true。
大中心坐标根据三角形的顶点定义三角形内的点。 有关 Barycentric 坐标的更深入说明,请参阅 Mathworld 的 Bary 心坐标说明。
要求
要求 | 值 |
---|---|
标头 |
|
库 |
|
请参阅