void GetPickRay2(int x, int y, DX::Vector3 %orig, DX::Vector3 %dir){
DX::Matrix proj = device->Transform->Projection;
DX::Vector3 nearVec(x, y, 0), farVec(x, y, 1);
nearVec.Unproject(viewport, proj,
device->Transform->View,
device->Transform->World);
farVec.Unproject(viewport, proj,
device->Transform->View,
device->Transform->World);
orig = nearVec;
farVec.Subtract(orig);
dir = farVec;
}
Here x and y are in client co-ordinates.
CLIENT.
CO-ORDINATES.
DON'T.
EVER.
FORGET.
THAT.

No comments:
Post a Comment