Original Post
Hi all, i was trying to add ray picking to my terrain, but i cant get it to work. did I overlook something ?
GetTransform(D3DTS_PROJECTION, m);
GetViewport(vp);
v.x := ( ( ( 2.0 * x ) / vp.Width ) - 1 ) / m._00;
v.y := -( ( ( 2.0 * y ) / vp.Height ) - 1 ) / m._11;
v.z := 1.0;
GetTransform(D3DTS_VIEW, m2);
D3DXMatrixInverse( m, nil, m2);
rayDir.x := v.x*m._00 + v.y*m._10 + v.z*m._20;
rayDir.y := v.x*m._01 + v.y*m._11 + v.z*m._21;
rayDir.z := v.x*m._02 + v.y*m._12 + v.z*m._22;
rayOrigin.x := m._30;
rayOrigin.y := m._31;
rayOrigin.z := m._32;
GetTransform(D3DTS_WORLD, m2);
D3DXMatrixInverse( m, nil, m2);
D3DXVec3TransformCoord(rayObjOrigin, rayOrigin, m);
D3DXVec3TransformNormal(rayObjDir, rayDir, m);
D3DXVec3Normalize(rayObjDir, rayObjDir);