public static void Project(ref Vector4 vector, ref Matrix4 projectionMatrix, ref Matrix4 viewMatrix, int viewX, int viewY, int viewWidth, int viewHeight, out Vector4 result) { result = vector; result = result.Multiply(viewMatrix); result = result.Multiply(projectionMatrix); float wDelta = 1 / result.W; result.X *= wDelta; result.Y *= wDelta; result.Z *= wDelta; result.X = (result.X * .5f) + .5f; result.Y = (result.Y * .5f) + .5f; result.Z = (result.Z * .5f) + .5f; result.X = (result.X * viewWidth) + viewX; result.Y = (result.Y * viewHeight) + viewY; }