public void LookAt(Vector3 location) { RotationMatrix = Matrix4.CreateFromQuaternion(Matrix4.LookAt(Vector3.Zero, -(location - Transformation.GetPosition()).Normalized(), new Vector3(0, 1, 0)).ExtractRotation()); ViewMatrix = RotationMatrix * Matrix4.CreateTranslation(-Transformation.GetPosition()); Transformation.SetOrientation(RotationMatrix.ExtractRotation()); Transformation.ClearModifiedFlag(); VPMatrix = Matrix4.Mult(ViewMatrix, ProjectionMatrix); }
public void SwitchCamera(TextureTarget face) { if (!Generated) { Generate(); } var proj = FacesCameras[face].GetProjectionMatrix(); FacesCameras[face].Transformation.SetPosition(Transformation.GetPosition()); FacesCameras[face].Update(); Camera.Current = FacesCameras[face]; }