ARKit Пространство имен
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Пространство имен ARKit обеспечивает поддержку сеансов дополненной реальности, включая высокоуровневые и низкоуровневые API для проецирования созданных компьютером изображений в видеопоток.
Классы
ARAnchor |
Положение, ориентация и масштаб, расположенные в реальном мире, к которому можно прикрепить объекты дополненной реальности. |
ARBlendShapeLocationOptions |
Объект DictionaryContainer , определяющий функции, доступные в T:ARKit.ARBlendShapeLocation . |
ARCamera |
Сведения о расположении и ориентации камеры, которая захватила кадр дополненной реальности. |
ARConfiguration |
Сведения о конфигурации для сеансов дополненной реальности. |
ARDirectionalLightEstimate |
Оценивает реальное освещение, падая на лицо. |
AREnvironmentProbeAnchor |
Источник для экологического освещения. |
ARErrorCodeExtensions |
Методы расширения для перечисления ARKit.ARErrorCode. |
ARFaceAnchor |
Объект ARAnchor , который находит обнаруженное лицо в мировых координатах сеанса дополненной реальности. |
ARFaceGeometry |
Сетка, представляющая распознанное лицо, включая форму и выражение. |
ARFaceTrackingConfiguration |
Объект ARConfiguration для распознавания и отслеживания лиц. |
ARFrame |
Кадр в сеансе дополненной реальности. |
ARHitTestResult |
Результат, созданный методом HitTest(CGPoint, ARHitTestResultType) . |
ARImageAnchor |
Объект ARAnchor , отслеживающий изображение, обнаруженное в реальном мире. |
ARImageTrackingConfiguration |
ARConfiguration подкласс, использующий распознанное изображение в качестве основы для отслеживания мира. |
ARLightEstimate |
Оценка реальной среды освещения. |
ARObjectAnchor |
ARAnchor подкласс, который отслеживает распознанный реальный трехмерный объект. |
ARObjectScanningConfiguration |
Ресурсоемкий ARConfiguration объект, используемый во время разработки для создания ARReferenceObject данных. |
AROrientationTrackingConfiguration |
Объект ARConfiguration , который отслеживает только ориентацию устройства и использует задние камеры устройства. |
ARPlaneAnchor |
Подкласс , используемый ARAnchor для представления реальных плоских поверхностей. |
ARPlaneGeometry |
Геометрия, представляющая плоскость, обнаруженную в реальном мире. |
ARPointCloud |
Набор трехмерных точек, указывающий на веру обработки изображений в фиксированную реальную точку на физической поверхности. |
ARReferenceImage |
Ресурс изображения, содержащий предварительно обработанные изображения для распознавания в реальном мире. |
ARReferenceObject |
Цифровое представление трехмерного объекта, обнаруживаемого в реальном мире. |
ARSCNDebugOptions |
Параметры визуализации для использования со свойством DebugOptionsARSCNView. |
ARSCNFaceGeometry |
Геометрия SceneKit, представляющая лицо. |
ARSCNPlaneGeometry |
Пространство имен ARKit обеспечивает поддержку сеансов дополненной реальности, включая высокоуровневые и низкоуровневые API для проецирования созданных компьютером изображений в видеопоток. |
ARSCNView |
Подкласс , SCNView поддерживающий содержимое дополненной реальности. |
ARSCNView.ARSCNViewAppearance |
Класс внешнего вида для объектов типа ARSCNView. |
ARSCNViewDelegate |
Делегировать объект для ARSCNView объектов. |
ARSCNViewDelegate_Extensions |
Методы расширения интерфейса IARSCNViewDelegate для поддержки всех методов из ARSCNViewDelegate протокола. |
ARSession |
Управляет захватом камеры, обработкой движения и анализом изображений, необходимыми для создания смешанной реальности. |
ARSessionDelegate |
Делегируйте объект для ARSession объекта , позволяя разработчику реагировать на события, связанные с сеансом дополненной реальности. |
ARSessionDelegate_Extensions |
Методы расширения интерфейса IARSessionDelegate для поддержки всех методов из ARSessionDelegate протокола. |
ARSessionObserver_Extensions |
Необязательные методы IARSessionObserver интерфейса. |
ARSKView |
Подкласс , SKView который помещает объекты Sprite Kit в сеанс дополненной реальности. |
ARSKView.ARSKViewAppearance |
Класс внешнего вида для объектов типа ARSKView. |
ARSKViewDelegate |
Делегировать объект , позволяющий разработчику реагировать на события, связанные с ARSKView. |
ARSKViewDelegate_Extensions |
Методы расширения интерфейса IARSKViewDelegate для поддержки всех методов из ARSKViewDelegate протокола. |
ARVideoFormat |
Сводные сведения о видеопотоке, используемом в моделировании дополненной реальности. |
ARWorldMap |
Сериализуемое и совместное сочетание реальных пространственных точек данных и привязок смешанной реальности. |
ARWorldTrackingConfiguration |
Конфигурация для сеанса, который отслеживает положение и ориентацию устройства и при необходимости обнаруживает горизонтальные поверхности. |
Интерфейсы
IARAnchorCopying |
Пространство имен ARKit обеспечивает поддержку сеансов дополненной реальности, включая высокоуровневые и низкоуровневые API для проецирования созданных компьютером изображений в видеопоток. |
IARSCNViewDelegate |
Интерфейс, представляющий обязательные методы (если таковые есть) протокола ARSCNViewDelegate. |
IARSessionDelegate |
Интерфейс, представляющий обязательные методы (если таковые есть) протокола ARSessionDelegate. |
IARSessionObserver |
Интерфейс, определяющий методы, реагирующие на события в ARSession. |
IARSKViewDelegate |
Интерфейс, представляющий обязательные методы (если таковые есть) протокола ARSKViewDelegate. |
IARTrackable |
Интерфейс для реальных объектов, которые можно отслеживать с помощью ARKit. |
Перечисления
AREnvironmentTexturing |
Перечисляет стратегии создания текста среды, используемые с объектами T:ARKit.ARWorldTrackingProbeAnchor . |
ARErrorCode |
Перечисление причин ARSession сбоя. |
ARHitTestResultType |
Перечисляет типы объектов, обнаруженных методом HitTest(CGPoint, ARHitTestResultType) . |
ARPlaneAnchorAlignment |
Ориентация ARPlaneAnchor объекта (в настоящее время ограничена горизонтальной). |
ARPlaneClassification |
Пространство имен ARKit обеспечивает поддержку сеансов дополненной реальности, включая высокоуровневые и низкоуровневые API для проецирования созданных компьютером изображений в видеопоток. |
ARPlaneClassificationStatus |
Пространство имен ARKit обеспечивает поддержку сеансов дополненной реальности, включая высокоуровневые и низкоуровневые API для проецирования созданных компьютером изображений в видеопоток. |
ARPlaneDetection |
Перечисляет допустимые ориентации для обнаруженных плоскостей (в настоящее время только по горизонтали). |
ARSessionRunOptions |
Перечисляет параметры в вызовах .Run(ARConfiguration, ARSessionRunOptions) |
ARTrackingState |
Перечисляет качество отслеживания в реальном мире в дополненной реальности ARSession. |
ARTrackingStateReason |
Перечисляет причины Limited. |
ARWorldAlignment |
Перечисляет параметры создания мировой системы координат. |
ARWorldMappingStatus |
Перечисляет состояния сеанса сопоставления мира. |
Комментарии
ARKit был добавлен в iOS 11 и предоставляет сеансы смешанной реальности, сочетающие вход с камеры с созданными компьютером изображениями, которые отображаются в реальном мире.
ARKit доступен только на устройствах под управлением A9 и более мощных процессорах: по сути iPhone 6S и более новых, iPad Pro и iPad, выпущенных не ранее 2017 года.
Приложения ARKit не запускаются в симуляторе.
У разработчиков есть три варианта отрисовки сцен дополненной реальности:
Класс | Сценарий использования |
---|---|
ARSCNView | Объединение трехмерной геометрии SceneKit с видео |
Объединение 2D-изображений SpriteKit с видео | |
Экспортируйте "renderer:updateAtTime:" из их IARSCNViewDelegate. | Разрешает полную пользовательскую отрисовку. |
Системы координат и преобразования ARKit
ARKit использует движение устройства и "визуальную одометрию" для создания модели камеры устройства и реальных "точек признаков" по отношению к виртуальной системе координат. Система координат использует в качестве единиц измерения. Виртуальная система координат имеет источник, вычисляемый как расположение камеры на момент ARSession запуска. Расположение и ориентация в ARKit в основном представлены с помощью NMatrix4 собственных матриц. В случае ARKit это преобразования с основными столбцами:
Положение или преобразование находится в M14, M24и M34. Матрица 3x3, определяемая в M11 , M33 является матрицей поворота.
SCNVector3 Position(NMatrix4 m) => new SCNVector3(m.M14, m.M24, m.M34);
Инициализация
Объект ARSession управляет общим процессом дополненной реальности. Метод Run принимает ARConfiguration и ARSessionRunOptions объект , как показано ниже:
ARSCNView SceneView = ... // initialized in Storyboard, `ViewDidLoad`, etc.
// Create a session configuration
var configuration = new ARWorldTrackingConfiguration {
PlaneDetection = ARPlaneDetection.Horizontal,
LightEstimationEnabled = true
};
// Run the view's session
SceneView.Session.Run(configuration, ARSessionRunOptions.ResetTracking);
ARSession После выполнения CurrentFrame его свойство содержит активный ARFrameобъект . Так как система пытается запустить ARKit со скоростью 60 кадров в секунду, разработчики, ссылающиеся на CurrentFrame , должны быть уверены Dispose
в кадре после его потери.
Система отслеживает высококонтрастные "функциональные точки" в представлении камеры. Они доступны разработчику в виде ARPointCloud объекта, который можно прочитать по адресу RawFeaturePoints. Как правило, разработчики полагаются на систему для выявления функций более высокого уровня, таких как плоскости или человеческие лица. Когда система определяет эти функции более высокого уровня, она добавляет ARAnchor объекты, свойства которых P:ARKit.ARAnchor.Position находятся в системе мировых координат. Разработчики могут использовать DidAddNodeметоды , DidUpdateNodeи DidRemoveNode для реагирования на такие события и для подключения пользовательской геометрии к реальным функциям.
Координаты дополненной реальности поддерживаются с помощью визуальной одометрии и диспетчера движения устройства. Экспериментально отслеживание кажется очень твердым на расстояниях не менее десятков метров в непрерывном сеансе.