How do I get the point in the triangle intersected with a ray
How do I get the point in the triangle intersected with a ray?
The dist is the distance between the intersected point in trainagle and the origin of the ray?
D3DXIntersectTri(&v_tri[0],&v_tri[1],&v_tri[2],&originW,&dirW,&U,&V,&dist);
Quote:Original post by akira32U and V are the Barycentric coordinates of the intersection point.
How do I get the point in the triangle intersected with a ray?
Quote:Original post by akira32Yes.
The dist is the distance between the intersected point in trainagle and the origin of the ray?
Did you read the Documentation?
D3DXIntersectTri(&v1,&v2,&v3,&originW,&dirW,&U,&V,&dist);D3DXVECTOR3 vec1=originW+dist*dirW;float W=1-(U+V);D3DXVECTOR3 vec2;//intersected point in trianglevec2.x=(v1.x*W)+(v2.x*U)+(v3.x*V);vec2.y=(v1.y*W)+(v2.y*U)+(v3.y*V);vec2.z=(v1.z*W)+(v2.z*U)+(v3.z*V);
Is the vec1 equal to vec2?
Yep.
FYI, you don't need to do the coordinates separately. D3DXVECTOR3 overloaded operators allow:
vec2 = v1*W + v2*U + v3*V;
Be aware: dist may be negative, which means dirW is pointing away from the triangle.
Also, be aware of the return value of D3DXIntersectTri. If false, that represents the condition where dirW is parallel to the plane of the triangle.
FYI, you don't need to do the coordinates separately. D3DXVECTOR3 overloaded operators allow:
vec2 = v1*W + v2*U + v3*V;
Be aware: dist may be negative, which means dirW is pointing away from the triangle.
Also, be aware of the return value of D3DXIntersectTri. If false, that represents the condition where dirW is parallel to the plane of the triangle.
This topic is closed to new replies.
Advertisement
Popular Topics
Advertisement