public static void EnableDof(this IAutoFocusingView view, bool enable = true) { Ensure.That(view, nameof(view)).IsNotNull(); var env = view.Camera.GetWorld().Environment; if (env == null) { return; } env.DofBlurNearEnabled = enable; env.DofBlurFarEnabled = enable; }
public static void SetFocalDistance([NotNull] this IAutoFocusingView view, float distance) { Ensure.Any.IsNotNull(view, nameof(view)); var env = view.Camera.GetWorld().Environment; if (env == null) { return; } env.DofBlurNearEnabled = true; env.DofBlurFarEnabled = distance <= view.MaxDofDistance; var transition = view.DofTransition / 2f; env.DofBlurNearDistance = Mathf.Clamp(distance - transition, 0, view.MaxDofDistance); env.DofBlurFarDistance = distance + transition; }
public static void SetFocalDistance(this IAutoFocusingView view, float distance) { Ensure.That(view, nameof(view)).IsNotNull(); var env = view.Camera.GetWorld().Environment; if (env == null) { return; } var effective = Mathf.Max(0, distance); env.DofBlurNearEnabled = true; env.DofBlurFarEnabled = effective <= view.MaxDofDistance; var offset = view.FocusRange / 2f; env.DofBlurNearDistance = Mathf.Clamp(effective - offset, 0, view.MaxDofDistance); env.DofBlurFarDistance = effective + offset; }
public static void DisableDof(this IAutoFocusingView view) => EnableDof(view, false);