ARKit - Как создать карту мира для большой среды? - PullRequest
0 голосов
/ 04 октября 2018

Я разрабатываю игру для 4 игроков, используя ARKit.Я знаю, как сохранить, а затем получить worldMap.Это не сложно.

sceneView.session.getCurrentWorldMap { worldMap, error in
    guard let map = worldMap
        else { self.showAlert(title: "Can't get current world map", message: error!.localizedDescription); return }

    guard let snapshotAnchor = SnapshotAnchor(capturing: self.sceneView)
        else { fatalError("Can't take snapshot") }
    map.anchors.append(snapshotAnchor)

    do {
        let data = try NSKeyedArchiver.archivedData(withRootObject: map, requiringSecureCoding: true)
        try data.write(to: self.mapSaveURL, options: [.atomic])
        DispatchQueue.main.async {
            self.loadExperienceButton.isHidden = false
            self.loadExperienceButton.isEnabled = true
        }
    } catch {
        fatalError("Can't save map: \(error.localizedDescription)")
    }
}

Но я не знаю, как отследить с iPhone следующее место (это 50x50 метров), чтобы сгенерировать это worldMap.

enter image description here

Не могли бы вы дать мне идею, как отслеживать это место?

1 Ответ

0 голосов
/ 15 марта 2019

Если вы хотите эффективно перемещаться в реальной среде с объектами AR вокруг вас, вы должны использовать весь арсенал разработчика для точного позиционирования: Базовая структура местоположения (она предоставляет услуги для определения географического положения устройства, высоты, ориентации или относительного положенияк ближайшему iBeacon), инфраструктура iBeacon и сертифицированное для нее оборудование (интерактивные возможности для определения местоположения iBeacon особенно полезны для навигации внутри помещений), платформы Vision и Core ML (разработанные для использования обученной модели машинного обучения для классификации входных данных по признаками изображения).

Перед использованием вышеупомянутых фреймворков вы должны отслеживать с iPhone всю среду несколько раз (каждый раз добавляя новые характерные точки в существующий массив функций).Посмотрите на картинку ниже, чтобы представить, как выглядит облако точек:

enter image description here

Надеюсь, это поможет.

...