public void Rotate() { // TODO: Hook up Roll. Not critical, but nice to have. float yawRad = MathHelper.DegreesToRadians(Yaw); float pitchRad = MathHelper.DegreesToRadians(Pitch); Front.X = Convert.ToSingle(Math.Cos(pitchRad) * Math.Cos(yawRad)); Front.Y = Convert.ToSingle(Math.Sin(pitchRad)); Front.Z = Convert.ToSingle(Math.Cos(pitchRad) * Math.Sin(yawRad)); Front.Normalize(); Right = Vector3.Normalize(Vector3.Cross(Front, WorldUp)); Up = Vector3.Normalize(Vector3.Cross(Right, Front)); ViewMatrix = Matrix4.LookAt(Position, Position + Front, Up); Frustum?.Update(Position, Front, Right, Up, Fov, AspectRatio, NearClip, FarClip); }
public void UpdateProjectionMatrix() { ProjectionMatrix = Matrix4.CreatePerspectiveFieldOfView(MathHelper.DegreesToRadians(Fov), AspectRatio, NearClip, FarClip); Frustum?.Update(Position, Front, Right, Up, Fov, AspectRatio, NearClip, FarClip); }