Хобрук: Ваш путь к мастерству в программировании

Сбой ARKit на iPad Air 1

Так что я хотел попробовать ARKit. Я установил iOS 11 на свой iPad Air, но он продолжает падать. Вот код в моем контроллере представления

import UIKit
import ARKit

class ViewController: UIViewController {

   @IBOutlet weak var sceneView: ARSCNView!
   @IBOutlet weak var counterLabel: UILabel!
   override func viewDidLoad() {
       super.viewDidLoad()

       let scene = SCNScene()
       sceneView.scene = scene
   }

   override func viewWillAppear(_ animated: Bool) {
        super.viewWillAppear(true)

        let configuration = ARSessionConfiguration()
        sceneView.session.run(configuration)
    }
}

Поэтому я немного поискал и наткнулся на это: https://developer.apple.com/documentation/arkit/building_a_basic_ar_experience, в котором в основном говорится, что для устройств с более старым чипом, чем A9, следует использовать ARSessionConfiguration вместо ARWorldTrackingSessionConfiguration, однако я все еще продолжаю получать сбои.
Я попробовал ARKit Demp, предоставленный Apple, то же самое. вещь.
Я также пробовал sceneView.antialiasingMode = .none, но это тоже не помогло.

Вот журнал консоли, который я получаю при сбое

2017-06-26 21:44:16.539469+0200 ARKitGame[562:56168] [DYMTLInitPlatform] Инициализация платформы успешна -26 21:44:18.633276+0200 ARKitGame[562:55915] Включена проверка Metal API 2017-06-26 21:44:19.625366+0200 ARKitGame[562:56176] [MC] Контейнер системной группы для systemgroup.com.apple. Путь к конфигурационным профилям: /private/var/containers/Shared/SystemGroup/systemgroup.com.apple.configurationprofiles 2017-06-26 21:44:19.628963+0200 ARKitGame[562:56176] [MC] Чтение общедоступных эффективных пользовательских настроек. 2017-06-26 21:44:22.706910+0200 ARKitGame[562:56176] -[MTLTextureDescriptorInternal validateWithDevice:], строка 778: ошибка «MTLTextureDescriptor имеет недопустимый формат пикселей (520)». -[MTLTextureDescriptorInternal validateWithDevice:]:778: ошибочное утверждение «MTLTextureDescriptor имеет недопустимый формат пикселей (520)». (lldb)


  • Это бета ОС. Вы уверены, что версия iPad полностью поддерживается? 26.06.2017
  • Ага, только сегодня скачал. Это последняя бета-версия iOS 11. 26.06.2017
  • Вероятно, время от времени он будет давать сбои, такова природа бета-версий программного обеспечения. 26.06.2017
  • вероятно, следует подать радар, если вы думаете, что он должен работать... 26.06.2017
  • Ну, видимо, сегодня Apple выпустила обновление размером 24 МБ. Сейчас скачиваю и тестирую. Но, согласно журналам изменений, это должно было быть исправлено в iOS 11 Beta 2, что у меня уже есть. 26.06.2017
  • Нет, не получилось :С 27.06.2017

Ответы:


1

Apple изменила документацию ARKit в бета-версии 2: теперь она недвусмысленно говорит, что ARKit в целом -- не только отслеживание мира — требуется A9.

Возможно, это объясняет, почему даже базовая конфигурация сеанса никогда не работала на устройствах ниже A9...

30.06.2017
  • Это интересно. print(ARSessionConfiguration.isSupported) print(ARWorldTrackingSessionConfiguration.isSupported) Оба возвращают значение true при запуске на моем iPad Air. Я думал, что ARSessionConfiguration будет единственным, который возвращает true. Мне действительно интересно, вернут ли они его на устройства ниже A9. 30.06.2017
  • Сделаю. Спасибо, что упомянули об этом. 30.06.2017

  • 2

    Я загрузил последнюю бета-версию и запустил ее на iPad Air 1, и все равно происходит сбой, и, как упоминала Apple здесь: https://developer.apple.com/documentation/arkit

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

    Похоже, это работает только на процессорах A9.

    20.07.2017

    3

    ARKit работает только с чипами A9 и выше: http://www.iphonehacks.com/2017/06/list-iphone-ipad-совместимый-arkit-ios-11.html

    В iPad Air 1 установлен чип A7, поэтому я думаю, что, возможно, это и есть тот самый сбой, который вы видите.

    Обновлено: не заметил вашего комментария о старых чипах, использующих ARSessionConfiguration вместо ARWorldTrackingSessionConfiguration. Возможно, вы могли бы попробовать изменить эти настройки в демонстрационном приложении ARKit.

    27.06.2017
  • Да, это то, что я сделал. Не работает. Это сводит меня с ума. Я также читал что-то об отключении ARSessionConfiguration для устройств с более ранними чипами, но он будет включен в более поздней бета-версии. Пока что мы на бета-версии 2, и, похоже, она не работает. 27.06.2017
  • Новые материалы

    (Почти) полнофункциональная реализация Gumbel MuZero в Джулии.
    TLDR; Gumbel Muzero — это современный алгоритм обучения с подкреплением. Он достиг сверхчеловеческой производительности во многих настольных играх и даже, что более впечатляюще, в Atari..

    Передача нейронного стиля в браузерах с использованием Angular и WebDNN
    В последние годы глубокое обучение привлекло большое внимание из-за его безупречной производительности при обучении на обширных данных и высокой точности при выводе. Развертывание этих алгоритмов..

    Шифр Цезаря в C
    Шифр Цезаря  — один из самых простых и широко известных методов шифрования. Он включает в себя сдвиг каждой буквы в сообщении на определенное количество позиций в алфавите. В этой статье мы..

    Исследовательский анализ данных (EDA)
    Что такое ЭДА? Анализ данных, который ищет закономерности в данных, известен как исследовательский анализ данных. Это похоже на беглый просмотр данных, чтобы найти наиболее важные..

    1x1 Convolution: демистификация
    Чтобы пролить свет на концепцию операции свертки 1x1, которая представлена ​​в статье «Сеть в сети» Лин и др. и Google Inception Некоторое время назад я прочитал статью «Сеть в сети» (NiN),..

    Лучшие расширения VS Code в 2022 году
    Код ВС Лучшие расширения VS Code в 2022 году Список самых полезных расширений VS Code, которые вы можете использовать как разработчик в 2022 году Расширения находятся на рынке VS Code,..

    Новый подход к изучению Python и ИИ: мой путь как CodeApprenticeAI
    Будучи начинающим программистом на Python, я столкнулся со своей долей проблем при изучении языка. Кривая обучения была крутой: от борьбы со сложными объяснениями до отсутствия руководства...