public override void UpdateViewMatrix() { if (Beta < MinBeta) { Beta = MinBeta; } var sideRadius = Radius * MathF.Cos(Beta); var height = Radius * MathF.Sin(Beta); if (Target.Y + height < MinY) { height = MinY - Target.Y; } Position = new Vector3( Target.X + sideRadius * MathF.Cos(Alpha), Target.Y + height, Target.Z + sideRadius * MathF.Sin(Alpha)); SetView(Matrix.LookAtRH(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); }
public override void UpdateViewMatrix() { SetView(RhMode ? Matrix.LookAtRH(Position, Position + Look, Up) : Matrix.LookAtLH(Position, Position + Look, Up)); Right = new Vector3(View.M11, View.M21, View.M31); Right.Normalize(); Frustum = Frustum.FromViewProj(ViewProj); }
public override void UpdateViewMatrix() { SetView(Matrix.LookAtRH(Position, Target, Up)); Frustum = Frustum.FromViewProj(ViewProj); }