Если я правильно понимаю, у вас есть трехмерные координаты в пространстве камеры, которые вы хотите преобразовать в мировое пространство.
Для этого вам нужно умножить эти координаты на матрицу преобразования камеры.Эта матрица состоит из отдельных преобразований (перемещение, вращение и масштаб).
Будьте внимательны в том порядке, в котором вы применяете преобразования: перевод * масштаб! = Масштаб * перевод.
ВозможноВы можете настроить свою матрицу так:
Matrix cameraMatrix = Matrix.CreateScale(cam_sx, cam_sy, cam_sz);
cameraMatrix *= Matrix.CreateRotationX(MathHelper.ToRadians(cam_rx));
cameraMatrix *= Matrix.CreateRotationY(MathHelper.ToRadians(cam_ry));
cameraMatrix *= Matrix.CreateRotationZ(MathHelper.ToRadians(cam_rz));
cameraMatrix *= Matrix.CreateTranslation(cam_x, cam_y, cam_z);
// Now we create a point in the camera local space
Vector3 localPoint = new Vector3(0, 0, 0);
Vector3 worldPoint = Vector3.Transform(localPoint , cameraMatrix);
// Now world contains the coordinates in the world space
// For example, if your camera is located at position (5,5,5)
// and localPoint=(0,0,0) then worldPoint=(5,5,5) which seems correct.