Частота обратных вызовов didUpdate при использовании отслеживания лиц ARKit - PullRequest
1 голос
/ 10 января 2020

Проверка возможности отслеживания глаз с помощью ARKit для нового приложения. Мы хотели бы записать точку на экране (вместе с отметкой времени), на которую смотрит пользователь, используя устройство iOS с возможностями True Depth. У меня есть 2 вопроса:

  1. Есть ли какая-то гарантия на тариф, который называется renderer:didUpdate. Знаем ли мы, например, что он вызывается как минимум 30 раз в секунду?
  2. Во всех приведенных мною примерах для отслеживания лица ARKit требуется SceneKit, есть ли возможность использовать отслеживание лица без SceneKit?

1 Ответ

1 голос
/ 15 января 2020

Первый .

Жаль, но нет никакой гарантии, что ваше приложение может воспроизводить сцену при 60 кадрах в секунду, также нет гарантии, что ваше приложение может отображать ее со скоростью 30 кадров в секунду. Вы можете настроить частоту кадров при рендеринге, используя предпочитаемое свойство экземпляра FramesPerSecond ...

var preferredFramesPerSecond: Int { get set }

или:

@IBOutlet var sceneView: ARSCNView!
sceneView.preferredFramesPerSecond = 30

... но это зависит от группы факторов (особенно от того, сколько высокополигональных моделей, PBR-шейдеров и теней в вашей сцене). Следовательно, вам нужно выбрать частоту кадров, которую ваше приложение может постоянно поддерживать.

Значение по умолчанию preferredFramesPerSecond равно 0. Когда это значение равно 0, предпочтительная частота кадров равна максимальной refre sh скорость отображения, как указано в свойстве MaximumFramesPerSecond.

Second .

Помимо фреймворка SceneKit, для отслеживания лица вы также можете используйте совершенно новый фреймворк с именем RealityKit . Но, честно говоря, я еще не пробовал eye tracking, или так называемый gaze detection, в контексте RealityKit.

...