>>123
俺はこんな感じで使ってる(マウスカーソルを射影)
float z = 0.1f; //0〜1f?射影時の視点からのポイント距離
Vector3.Unproject(new Vector3((float)mouseX, (float)mouseY, z), viewport.X, viewport.Y, viewport.Width, viewport.Height, viewport.MinZ, viewport.MaxZ, mat);

最初と最後の引数以外は全部Viewportから取ってるから
Viewport持ってるなら簡単

最後のmatrixは普通にワールド*ビュー*プロジェクションのマトリクス渡す