|
|
算法如下
取地形四顶点
v0,v1,v2,v3
v0-------------v1
|
|
|
|
|
v2--------------v3
先做三角形v0, v1, v3
if( D3DXIntersectTri( &v0, &v1, &v3, &vPickRayOrig, &vPickRayDir,&fBary1,
&fBary2, &fDist ) == TRUE )
if(fDist < fMinDist)
{
vPickPos = v0 + fBary1 * (v1 - v0) + fBary2 * (v3 - v0);
后做先做三角形v0, v3, v2
if( D3DXIntersectTri( &v0, &v3, &v2, &vPickRayOrig, &vPickRayDir,&fBary1,
&fBary2, &fDist ) == TRUE )
{
if(fDist < fMinDist)
{
vPickPos = v0 + fBary1 * (v3 - v0) + fBary2 * (v2 - v0);
有时没有返回正确的vPickPos,为何??????? |
|