Если я отключу, например, ограничение ниже, мой код будет работать как положено.

емя сеанса ARKit с включенным отслеживанием мира консоль Xcode показываетрегистрировать сообщения о (я предполагаю: сниженном) производительности отслеживания, даже не смотря на

сеанс AR находится в нормальном состоянии отслеживания,

Я использую устройство в хорошо освещенном офисном помещении с множеством «функций» для обнаружения, и

Устройство двигается только тонко.

TLDR: Я хочу понять, что может быть их причиной, какое влияние они оказывают и как их предотвратить, или (заново) воздействовать на них, когда они происходят -NB. не просто скрыть ошибку.

[Technique] World tracking performance is being affected by resource constraints [0]
[Technique] World tracking performance is being affected by resource constraints [1]

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

Как и ожидалось, при использовании мирового отслеживания консольное приложение показывает многоCoreMotion Журналы примерно во время ошибок, но эти строки, кажется, не содержат ошибок, предупреждений или другой информации, которая помогает мне диагностировать происходящее.

В тот момент, когда ошибки появляются в журнале, естьнет делегатов, но в конечном итоге (от 5 до 50 секунд) экран зависнет с ошибкой сеанса обратного вызова:

Error Domain=com.apple.arkit.error Code=200 "World tracking failed." UserInfo={NSLocalizedDescription=World tracking failed., NSLocalizedFailureReason=World tracking cannot determine the device's position.}

ARKit источник /документация не дает никаких подсказок о том, что «ограничения ресурсов» могли вызвать неспособностьопределить положение устройстваэто просто гласит:

Отслеживание мира обнаружило фатальную ошибку.

Я попытался (безуспешно), чтобы предотвратить появление предупреждений:

сброс отслеживания сеанса: все еще ошибки,

сброс сеанса с удалением всехARAnchors: все еще ошибки,

отключение определения плоскости (когда-то больше не нужно): все еще ошибки,

Приостановка сеанса AR отключает предупреждения (имеет смысл, поскольку это означает, что устройство перестает отслеживать его движение во время паузы), но при возобновлении сеанса предупреждения возвращаются.

Когда вы закрываете сеанс и воссоздаете его (то есть закрываете VC и воссоздаете), не перемещая камеру (или меняя освещение), проблема не всегда возникает снова.

Я думаю, чтомигающие TL-фонари являются причиной предупреждений о производительности отслеживания, учитывая Appleобъяснение того, как работает отслеживание мира:

… Визуально-инерционная одометрия. Этот процесс сочетает в себе информацию, полученную от устройства обнаружения движения устройства iOS, с анализом компьютерного зрения сцены, видимой для камеры устройства. ARKit распознает заметные особенности в изображении сцены, отслеживает различия в расположении этих объектов в видеокадрах и сравнивает эту информацию с данными, чувствительными к движению.

(iPhone 6S, iOS 11 beta 4, другие приложения не работают в фоновом режиме)

Вопросов:

В чем разница между[0] а также[1]?

Что может вызвать эти ошибки?

Какое влияние они оказывают наARSession не провалился (пока)? Я предполагаю, что мы увидим "нервные" модели какмировые координаты предоставленные обновлениями кадра не точны - примечание. после сброса / остановкиARAnchor отслеживание ошибок все же произошло.

Узнаем ли мы, что сеанс AR вот-вот провалится, или это будет неожиданно?(Опять жеARSession не происходит сбой сразу после изменения состояния отслеживания на «ограниченное»)

Есть ли способ справиться с этим, например, Освободить эти упомянутые «ограничения ресурсов» - или вообще предотвратить их появление?

Ответы на вопрос(0)

Ваш ответ на вопрос