Esempio n. 1
0
        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;
        }
Esempio n. 2
0
        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;
        }
Esempio n. 3
0
        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;
        }
Esempio n. 4
0
 public static void DisableDof(this IAutoFocusingView view) => EnableDof(view, false);