public override void UpdateViewMatrix() {
var sideRadius = Radius * MathF.Cos(Beta);
var height = Radius * MathF.Sin(Beta);
Position = new Vector3(
Target.X + sideRadius * MathF.Cos(Alpha),
Target.Y + height,
Target.Z + sideRadius * MathF.Sin(Alpha));
View = Matrix.LookAtLH(Position, Target, Vector3.UnitY);
Right = new Vector3(View.M11, View.M21, View.M31);
Right.Normalize();
Look = new Vector3(View.M13, View.M23, View.M33);
Look.Normalize();
Frustum = Frustum.FromViewProj(ViewProj);
}
}