D3DXIntersect

HRESULT D3DXIntersect(
                  LPD3DXBASEMESH pMesh, //Mesh to test,要检测的网格模型
                 CONST D3DXVECTOR3 * pRayPos, //Ray origin,射线的起点
                 CONST D3DXVECTOR3 * pRayDir, //Ray direction,射线方向
                 BOOL * pHit, //Did the ray hit or not?,射线是否击中网格
                 DWORD * pFaceIndex, //Index of triangle which was hit,第一个被击中的面索引
                 FLOAT * pU, //Barycentric U coordinate of hit,第一个击中点所在三角形的质心坐标U分量
                 FLOAT * pV, //Barycentric V coordinate of hit,类似上面
                 FLOAT * pDist, //Distance to hit (from ray origin),原点与击中点距离
                 LPD3DXBUFFER * ppAllHits, //List of all hits,全部集中的一个数组
                 DWORD * pCountOfHits //Number of hits,有多少次被击中
);

 

这里假如我们要获取全部的击中信息,那么我们要对ppAllHits操作,其指向一个击中信息的数组,击中信息的结构体是

struct D3DXINTERSECTINFO {//这些分量的含义同上
          DWORD FaceIndex;
          FLOAT U;
          FLOAT V;
          FLOAT Dist;
};

我们可以D3DXINTERSECTINFO *pIntersetInfo=(D3DXINTERSECTINFO *)ppAllHits;

for(int i=0;i<*pCountOfHits;i++)

{

      pIntersetInfo[i]...........

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值