Поддержка ARKit на младших устройствах?

В презентации Apple было сказано, что если ARWorldTrackingConfiguration не поддерживается, мы можем использовать меньшую AROrientationTrackingConfiguration (ранее называвшуюся ARSessionConfiguration).

Но когда я пробую это на устройстве A8 (iPad mini 4), не имеет значения, позволить ли ARWorldTrackingConfiguration() потерпеть неудачу или нет. Отслеживание просто не работает.

if ARWorldTrackingConfiguration.isSupported {
    let configuration = ARWorldTrackingConfiguration()
    sceneView.session.run(configuration)
}
else {
    sceneView.session.run(AROrientationTrackingConfiguration())
}

Если A8 не будет поддерживать ARKit, какой смысл поддерживать AROrientationTrackingConfiguration()?


person Lim Thye Chean    schedule 02.09.2017    source источник
comment
Я не думаю, что вы можете надеяться на детерминированное поведение устройств A8. Поддержка ArKit только для A9 и выше, поскольку Apple заявляет, что «ARKit работает на процессорах Apple A9 и A10. Эти процессоры обеспечивают непревзойденную производительность, которая обеспечивает быстрое понимание сцены и позволяет создавать детализированный и привлекательный виртуальный контент поверх реальных сцен. Вы можете воспользоваться оптимизацией для ARKit в Metal, SceneKit и сторонних инструментов, таких как Unity и Unreal Engine».   -  person Gonzales Gokhan    schedule 02.09.2017
comment
Тогда какие устройства поддерживают AROrientationTrackingConfiguration()?   -  person Lim Thye Chean    schedule 02.09.2017


Ответы (3)


Весь ARKit поддерживает только A9 и выше, включая AROrientationTrackingConfiguration. Как говорится в верхней части документов ARKit...

Важно! Для работы ARKit требуется устройство iOS с процессором A9 или более поздней версии.

Чтобы ваше приложение было доступно только на устройствах, поддерживающих ARKit, используйте ключ arkit в разделе UIRequiredDeviceCapabilities файла Info.plist вашего приложения. Если дополненная реальность является второстепенной функцией вашего приложения, используйте свойство isSupported, чтобы определить, поддерживает ли текущее устройство конфигурацию сеанса, которую вы хотите использовать.

Таким образом, вы действительно можете создать приложение для iOS 11, доступное только на подмножестве устройств iOS 11. Требование чего-либо в UIRequiredDeviceCapabilities приводит к тому, что App Store не предлагает ваше приложение на устройствах, которые вы не поддерживаете, а iTunes отказывается устанавливать приложение.

(Да, похоже, что Apple потребовалось немного времени, чтобы рассказать свою историю прямо здесь. На WWDC казалось, что они будут поддерживать отслеживание 3DOF на меньших устройствах, но теперь вам нужен A9 даже для этого.)


Так в чем смысл AROrientationTrackingConfiguration сейчас?

Для некоторых типов приложений может иметь смысл вернуться от отслеживания мира (6DOF) к отслеживанию только ориентации (3DOF), когда текущие условия не позволяют использовать 6DOF. Это не имеет особого смысла для приложений, в которых вы размещаете виртуальные объекты на столах, но если вы просто подбрасываете космических захватчиков в воздух, чтобы ваш игрок мог в них стрелять, или используете AR для наложения созвездий на небо, потеря 6DOF не имеет значения. т разрушить опыт так много.

person rickster    schedule 03.09.2017
comment
Запустить космических захватчиков в воздух — это именно то, что я собираюсь сделать. ???? Пробовал на iPad mini, с помощью AROrientationTrackingConfiguration не работает (фон черный, а не изображения с камеры, но узлы отображаются, просто их нельзя двигать). - person Lim Thye Chean; 04.09.2017
comment
Лучший iPad mini, который вы можете получить, имеет процессор A8, поэтому он не поддерживается ARKit. - person rickster; 04.09.2017
comment
Когда это произойдет? отслеживание мира (6DOF) к отслеживанию только ориентации (3DOF), когда текущие условия не позволяют 6DOF. - person Lim Thye Chean; 05.09.2017
comment
6DOF не работает, когда вы слишком сильно двигаете устройство или оно плохо видит свое окружение. Есть обратные вызовы делегата, чтобы сообщить вам, когда это происходит. - person rickster; 06.09.2017

Я полагаю, что Apple реализовала этот интерфейс фиктивным образом для устройств, не поддерживающих ARKit, чтобы они не зависали, если ARKit используется в приложении, и позволяла ему работать с меньшим количеством функций, чем на устройствах A9+.

person Xvolks    schedule 02.09.2017
comment
Какие устройства, не поддерживающие ARKit, могут поддерживать AROrientationTrackingConfiguration()? Вроде даже А8 не поддерживает. - person Lim Thye Chean; 02.09.2017
comment
Мой ответ был о совместимости. Когда вы создаете приложение для iOS 11, вы ожидаете, что оно будет работать на всех устройствах, даже если некоторые из них не поддерживают одну функцию. Как правило, приложение делает несколько вещей, вы хотите, чтобы ваше приложение работало на всех поддерживаемых устройствах и всех поддерживаемых функциях. Если функция не поддерживается, все остальные должны работать. Таким образом, в этом случае вы не хотите, чтобы приложение вылетало из-за отсутствия библиотеки, поскольку эта функция не поддерживается. - person Xvolks; 02.09.2017

Если вы хотите поддерживать большее количество устройств, 8th Wall XR — это библиотека, которую вы хочу. Он поддерживает гораздо больше устройств, чем последняя версия iOS. Тот же код будет работать и на Android, если вы когда-нибудь решите добавить свое приложение в этот сегмент.

person Dat Chu    schedule 03.09.2017