D3DXVECTOR3 vec1(-10,0,-10);
D3DXVECTOR3 vec2( 0,0, 10);
D3DXVECTOR3 vec3( 10,0,-10);
D3DXVECTOR3 vecOrg(0,10,0);
D3DXVECTOR3 vecDir(0,-2,0);
//求射线长度
D3DXVECTOR3 _vecDir;
D3DXVec3Subtract(&_vecDir, &vecDir, &vecOrg);
float dis_Ray = D3DXVec3Length(&_vecDir);
D3DXVec3Normalize(&vecDir,&vecDir);
float u;
float v;
float dis;
bool bInt = D3DXIntersectTri(&vec1, &vec2, &vec3, &vecOrg, &vecDir,&u, &v, &dis );
if (bInt && dis <= dis_Ray)
{
//求交点
D3DXVECTOR3 vecIntPoint = vec1 + u * (vec2 - vec1) + v * (vec3 - vec1);
return S_OK;
}
D3DXVECTOR3 vec2( 0,0, 10);
D3DXVECTOR3 vec3( 10,0,-10);
D3DXVECTOR3 vecOrg(0,10,0);
D3DXVECTOR3 vecDir(0,-2,0);
//求射线长度
D3DXVECTOR3 _vecDir;
D3DXVec3Subtract(&_vecDir, &vecDir, &vecOrg);
float dis_Ray = D3DXVec3Length(&_vecDir);
D3DXVec3Normalize(&vecDir,&vecDir);
float u;
float v;
float dis;
bool bInt = D3DXIntersectTri(&vec1, &vec2, &vec3, &vecOrg, &vecDir,&u, &v, &dis );
if (bInt && dis <= dis_Ray)
{
//求交点
D3DXVECTOR3 vecIntPoint = vec1 + u * (vec2 - vec1) + v * (vec3 - vec1);
return S_OK;
}