0
최근 마우스 위치에서 3D 점을 계산하려고했습니다. 내 수학 실력이 빛이없는만큼3D 좌표 계산
const D3DXMATRIX* pmatProj = g_Camera.GetProjMatrix();
POINT ptCursor;
GetCursorPos(&ptCursor);
ScreenToClient(DXUTGetHWND(), &ptCursor);
// Compute the vector of the pick ray in screen space
D3DXVECTOR3 v;
v.x = (((2.0f * ptCursor.x)/pd3dsdBackBuffer->Width) - 1)/pmatProj->_11;
v.y = -(((2.0f * ptCursor.y)/pd3dsdBackBuffer->Height) - 1)/pmatProj->_22;
v.z = 1.0f;
// Get the inverse view matrix
const D3DXMATRIX matView = *g_Camera.GetViewMatrix();
const D3DXMATRIX matWorld = *g_Camera.GetWorldMatrix();
D3DXMATRIX mWorldView = matWorld * matView;
D3DXMATRIX m;
D3DXMatrixInverse(&m, NULL, &mWorldView);
// Transform the screen space pick ray into 3D space
vPickRayDir.x = v.x * m._11 + v.y * m._21 + v.z * m._31;
vPickRayDir.y = v.x * m._12 + v.y * m._22 + v.z * m._32;
vPickRayDir.z = v.x * m._13 + v.y * m._23 + v.z * m._33;
vPickRayOrig.x = m._41;
vPickRayOrig.y = m._42;
vPickRayOrig.z = m._43;
그러나, 나는 위치를 생산하는 방향과 원점을 활용하는 방법을 확실하지 오전 : 지금까지 나는이 있습니다. 원하는 결과를 얻기 위해 어떤 계산/공식을 수행해야합니까?