Esempio n. 1
0
        /// <summary>
        /// Calculates the view matrix.
        /// </summary>
        /// <param name="position">The position.</param>
        /// <param name="direction">The direction.</param>
        /// <param name="up">The up direction.</param>
        /// <returns>The calculated view matrix.</returns>
        public static Matrix CalculateViewMatrix(Vector3 position, Vector3 direction, Vector3 up)
        {
            var n = -direction.Normalized();
            var u = up.Cross(n).Normalized();
            var v = n.Cross(u);
            var e = -position;

            return new Matrix(
                u.X, u.Y, u.Z, u.Dot(e),
                v.X, v.Y, v.Z, v.Dot(e),
                n.X, n.Y, n.Z, n.Dot(e),
                0, 0, 0, 1);
        }