public void GetRayFromScreenPoint(float x, float y, out DVector3 near, out DVector3 far)
{
var w = Viewport.Width;
var h = Viewport.Height;
var nearPoint = new DVector3(x, y, Parameters.FrustumZNear);
var farPoint = new DVector3(x, y, Parameters.FrustumZFar);
var vm = ViewMatrixWithTranslation;
var mVP = vm * ProjMatrix;
near = DVector3.Unproject(nearPoint, 0, 0, w, h, Parameters.FrustumZNear, Parameters.FrustumZFar, mVP);
far = DVector3.Unproject(farPoint, 0, 0, w, h, Parameters.FrustumZNear, Parameters.FrustumZFar, mVP);
}