Ejemplo n.º 1
0
        internal static Matrix CubeFaceViewMatrix(Vector3 pos, int faceId)
        {
            Matrix viewMatrix = Matrix.Identity;

            switch (faceId)
            {
            case 0:
                viewMatrix = Matrix.CreateLookAt(pos, pos + Vector3.Left, Vector3.Up);
                break;

            case 1:
                viewMatrix = Matrix.CreateLookAt(pos, pos + Vector3.Right, Vector3.Up);
                break;

            case 2:
                viewMatrix = Matrix.CreateLookAt(pos, pos + Vector3.Up, -Vector3.Backward);
                break;

            case 3:
                viewMatrix = Matrix.CreateLookAt(pos, pos + Vector3.Down, -Vector3.Forward);
                break;

            case 4:
                viewMatrix = Matrix.CreateLookAt(pos, pos + Vector3.Backward, Vector3.Up);
                break;

            case 5:
                viewMatrix = Matrix.CreateLookAt(pos, pos + Vector3.Forward, Vector3.Up);
                break;
            }



            return(viewMatrix);
        }
Ejemplo n.º 2
0
        public static void UpdateCamera()
        {
            ViewMatrix           = m_viewMatrix;
            ViewProjectionMatrix = ViewMatrix * ProjectionMatrix;

            UpdateVectors();
            UpdateBoundingFrustum();

            ViewMatrixAtZero = Matrix.CreateLookAt(Vector3.Zero, ForwardVector, UpVector);

            ViewProjectionMatrixAtZero = ViewMatrixAtZero * ProjectionMatrix;

            CornerFrustum = CalculateCornerFrustum();

            ProjectionMatrixForFarObjects = Matrix.CreatePerspectiveFieldOfView(FieldOfView, AspectRatio, NEAR_PLANE_FOR_BACKGROUND, FAR_PLANE_FOR_BACKGROUND);
        }