XNA: obtención de coordenadas del mouse con un sistema de cámara 2D con rotación / zoom / traslación

Tengo una cámara 2D con esta matriz de traducción:

        Transform = Matrix.CreateTranslation(new Vector3(-Position.X, -Position.Y, 0)) *
                     Matrix.CreateRotationZ(Rotation) *
                     Matrix.CreateScale(new Vector3(Scale, Scale, 0)) *
                     Matrix.CreateTranslation(new Vector3((GraphicsDevice.Viewport.Width * 0.5f), (GraphicsDevice.Viewport.Height * 0.5f), 0));

Que funciona para Rotación / Zoom donde el origen es el centro de la cámara.

Ahora estoy tratando de obtener las coordenadas del mouse en el mundo.

Intenté simplemente usar una transformación inversa, pero eso solo resultó en errores de NaN. Supongo que necesito configurar otra matriz de traducción para las coordenadas del mouse, una inversa de la actual, pero no puedo entender cómo se configura esto

Tengo esto,

MousePosition = new Vector2 ((Mouse.GetState (). X - DrawTransform.Translation.X) * (1 / Gamecode.Camera1.Scale), (Mouse.GetState (). Y - DrawTransform.Translation.Y) * (1 / Gamecode.Camera1.Scale));

Pero eso no tiene en cuenta la rotación

Respuestas a la pregunta(1)

Su respuesta a la pregunta