Я делаю простое приложение ARKit для линейки в Swift 4.
Но я столкнулся с проблемой, что иногда мои меры немного или полностью неверны. Что, я думаю, вероятно, связано с тем, что ARkit плохо откалиброван и неправильно определяет мою поверхность.
В настоящее время я проецирую 4 точки в 3D и хочу убедиться, что получаемая с ними мера правильная или, по крайней мере, согласованная.. Есть ли стандартный способ сделать это?
заранее спасибо





Может быть, это не стандартный способ, но я делал это, выполняя тесты попадания каждые полсекунды или около того, пока тест на попадание действительно что-то не вернул. Как только это произошло, я по крайней мере знал, что AR был откалиброван.
Я нашел достойный способ сделать это, установив порог количества FeaturePoints, обнаруженных в моем кадре Arkit.
Например, если frame.rawFeaturePoints?.points.count возвращает что-то выше моего порога (я лично использую 50, но это в основном зависит от расстояния, на которое вы обычно будете находиться от своей цели), я считаю, что мое приложение откалибровано.
Хорошее решение, сколько времени обычно требуется ARKit, чтобы преодолеть порог для вашего приложения?
Ну, это в основном зависит от расстояния, на котором вы находитесь от своей цели. Очевидно, что чем дальше вы находитесь, тем больше приложение может обнаруживать характерные точки. На самом деле я делаю так, чтобы мой порог зависел от расстояния, если я действительно близко к своему объекту, он будет около 20-30, если я далеко, то будет около 150. Я также подумал об использовании ARFrame. .worldMappingStatus, который дает вам "состояние исследования окружающей среды", но я должен признать, что это не совсем сработало, как ожидалось.
И чтобы ответить на ваш вопрос, я бы сказал примерно 2-3 секунды на iPhone 8 iOS 12.
Прохладный. Это хороший способ сделать это
Спасибо за ваш ответ, в конечном итоге я попробовал что-то немного другое, но ваш вклад помог :)