ARKIT Изменение положения узла в соответствии с физическим объектом - PullRequest
0 голосов
/ 26 апреля 2018

Я пытаюсь переместить узел относительно лица, поэтому, если лицо пользователя перемещается вправо, ромбовидная форма должна двигаться точно так же, как и x. Я сделал это отлично, используя ARFaceTrackingConfiguration . Однако, если между iPhone и лицом большое расстояние, метод делегирования рендерера больше не срабатывает.

Так что я предполагаю, что ARFaceTrackingConfiguration не предназначен для использования на больших расстояниях, потому что он использует датчики глубины, которые, очевидно, не поддерживают это.

Итак, мой вопрос: поддерживает ли ARKit добавление узлов относительно физического объекта, и когда этот объект перемещается, он обновляет меня с указанием позиции этого объекта, чтобы я мог обновить узел?

1 Ответ

0 голосов
/ 27 апреля 2018

Вы, похоже, ответили на свой вопрос.

Да, с помощью ARKit (и API-интерфейсов графа сцены / рендерера по вашему выбору, таких как SceneKit), вы можете размещать виртуальный контент так, чтобы он перемещался с отслеживаемым лицом. В ARSCNView все, что вам нужно сделать, это назначить этот контент как дочерний элемент узла, который вы получаете от renderer(_:didAdd:for:) - SceneKit автоматически заботится о перемещении узла всякий раз, когда ARKit сообщает, что лицо переместилось.

Если ARKit не может отследить лицо, потому что оно находится вне диапазона использования камеры TrueDepth ... тогда оно не отслеживает лицо. (Добро пожаловать в тавтологический клуб .) Это означает, что он не знает, где находится лицо, не может сказать вам, как движется лицо, и, следовательно, не может автоматически перемещать виртуальный контент, следуя за лицом.

...