ARKit Espacio de nombres
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
El espacio de nombres ARKit proporciona compatibilidad con sesiones de realidad aumentada, incluidas las API de alto y bajo nivel para proyectar imágenes generadas por el equipo en una secuencia de vídeo.
Clases
ARAnchor |
Posición, orientación y escala que se encuentra en el mundo real al que se pueden adjuntar objetos de realidad aumentada. |
ARBlendShapeLocationOptions |
que DictionaryContainer define las características disponibles en T:ARKit.ARBlendShapeLocation . |
ARCamera |
Información sobre la ubicación y la orientación de la cámara que capturó un marco de realidad aumentada. |
ARConfiguration |
Información de configuración para sesiones de realidad aumentada. |
ARDirectionalLightEstimate |
Calcula la iluminación del mundo real cayendo en una cara. |
AREnvironmentProbeAnchor |
Fuente de iluminación basada en el medio ambiente. |
ARErrorCodeExtensions |
Métodos de extensión para la enumeración ARKit.ARErrorCode. |
ARFaceAnchor |
que ARAnchor localiza una cara detectada en las coordenadas del mundo de la sesión de AR. |
ARFaceGeometry |
Malla que representa una cara reconocida, incluida la forma y la expresión. |
ARFaceTrackingConfiguration |
para ARConfiguration reconocer y realizar un seguimiento de caras. |
ARFrame |
Un marco en una sesión de realidad aumentada. |
ARHitTestResult |
Resultado generado por el HitTest(CGPoint, ARHitTestResultType) método . |
ARImageAnchor |
que ARAnchor realiza un seguimiento de una imagen detectada en el mundo real. |
ARImageTrackingConfiguration |
ARConfiguration subclase que usa una imagen reconocida como base para el seguimiento mundial. |
ARLightEstimate |
Una estimación del entorno de iluminación real. |
ARObjectAnchor |
ARAnchor subclase que realiza un seguimiento de un objeto 3D reconocido del mundo real. |
ARObjectScanningConfiguration |
Un uso intensivo ARConfiguration de recursos durante el desarrollo para crear ARReferenceObject datos. |
AROrientationTrackingConfiguration |
Que ARConfiguration solo realiza un seguimiento de la orientación del dispositivo y usa las cámaras traseras del dispositivo. |
ARPlaneAnchor |
Subclase de ARAnchor usada para representar superficies planas del mundo real. |
ARPlaneGeometry |
Geometría que representa un plano detectado en el mundo real. |
ARPointCloud |
Un conjunto de puntos 3 dimensionales, que indica la creencia del procesamiento de imágenes en un punto fijo del mundo real en una superficie física. |
ARReferenceImage |
Un recurso de imagen que contiene imágenes preprocesadas que se reconocerán en el mundo real. |
ARReferenceObject |
Representación digital de un objeto 3D que se va a detectar en el mundo real. |
ARSCNDebugOptions |
Opciones de visualización para su uso con la DebugOptions propiedad de ARSCNView. |
ARSCNFaceGeometry |
Geometría sceneKit que representa una cara. |
ARSCNPlaneGeometry |
El espacio de nombres ARKit proporciona compatibilidad con sesiones de realidad aumentada, incluidas las API de alto y bajo nivel para proyectar imágenes generadas por el equipo en una secuencia de vídeo. |
ARSCNView |
Subclase de SCNView que admite contenido de realidad aumentada. |
ARSCNView.ARSCNViewAppearance |
Clase de apariencia para objetos de tipo ARSCNView. |
ARSCNViewDelegate |
Objeto delegado para ARSCNView objetos . |
ARSCNViewDelegate_Extensions |
Métodos de extensión a la IARSCNViewDelegate interfaz para admitir todos los métodos del ARSCNViewDelegate protocolo. |
ARSession |
Administra la captura de cámara, el procesamiento de movimiento y el análisis de imágenes necesarios para crear una experiencia de realidad mixta. |
ARSessionDelegate |
Delegar objeto para el ARSession objeto, lo que permite al desarrollador responder a eventos relacionados con la sesión de realidad aumentada. |
ARSessionDelegate_Extensions |
Métodos de extensión a la IARSessionDelegate interfaz para admitir todos los métodos del ARSessionDelegate protocolo. |
ARSessionObserver_Extensions |
Métodos opcionales de la IARSessionObserver interfaz. |
ARSKView |
Una subclase de SKView que coloca los objetos sprite Kit en una sesión de realidad aumentada. |
ARSKView.ARSKViewAppearance |
Clase de apariencia para objetos de tipo ARSKView. |
ARSKViewDelegate |
Delegar objeto que permite al desarrollador responder a eventos relacionados con un ARSKView. |
ARSKViewDelegate_Extensions |
Métodos de extensión a la IARSKViewDelegate interfaz para admitir todos los métodos del ARSKViewDelegate protocolo. |
ARVideoFormat |
Información de resumen sobre la fuente de vídeo usada en la simulación de AR. |
ARWorldMap |
Combinación serializable y compartible de puntos de datos espaciales reales y anclajes de realidad mixta. |
ARWorldTrackingConfiguration |
Configuración de una sesión que realiza un seguimiento de la posición y la orientación del dispositivo y, opcionalmente, detecta superficies horizontales. |
Interfaces
IARAnchorCopying |
El espacio de nombres ARKit proporciona compatibilidad con sesiones de realidad aumentada, incluidas las API de alto y bajo nivel para proyectar imágenes generadas por el equipo en una secuencia de vídeo. |
IARSCNViewDelegate |
Interfaz que representa los métodos necesarios (si los hay) del protocolo ARSCNViewDelegate. |
IARSessionDelegate |
Interfaz que representa los métodos necesarios (si los hay) del protocolo ARSessionDelegate. |
IARSessionObserver |
Interfaz que define métodos que responden a eventos de un objeto ARSession. |
IARSKViewDelegate |
Interfaz que representa los métodos necesarios (si los hay) del protocolo ARSKViewDelegate. |
IARTrackable |
Interfaz para objetos reales a los que ARKit puede realizar un seguimiento. |
Enumeraciones
AREnvironmentTexturing |
Enumera las estrategias de texturización del entorno usadas con objetos T:ARKit.ARWorldTrackingProbeAnchor . |
ARErrorCode |
Enumerar las causas de un ARSession error. |
ARHitTestResultType |
Enumera los tipos de objetos detectados por el HitTest(CGPoint, ARHitTestResultType) método . |
ARPlaneAnchorAlignment |
La orientación de un objeto ARPlaneAnchor (actualmente restringido a horizontal). |
ARPlaneClassification |
El espacio de nombres ARKit proporciona compatibilidad con sesiones de realidad aumentada, incluidas las API de alto y bajo nivel para proyectar imágenes generadas por el equipo en una secuencia de vídeo. |
ARPlaneClassificationStatus |
El espacio de nombres ARKit proporciona compatibilidad con sesiones de realidad aumentada, incluidas las API de alto y bajo nivel para proyectar imágenes generadas por el equipo en una secuencia de vídeo. |
ARPlaneDetection |
Enumera las orientaciones válidas para los planos detectados (actualmente, solo horizontal). |
ARSessionRunOptions |
Enumera las opciones de las llamadas a Run(ARConfiguration, ARSessionRunOptions). |
ARTrackingState |
Enumera la calidad del seguimiento real en una realidad ARSessionaumentada. |
ARTrackingStateReason |
Enumera las causas de Limited. |
ARWorldAlignment |
Enumera las opciones de cómo se crea el sistema de coordenadas del mundo. |
ARWorldMappingStatus |
Enumera los estados de una sesión de asignación mundial. |
Comentarios
ARKit se agregó en iOS 11 y proporciona sesiones de realidad mixta que combinan la entrada de cámara con imágenes generadas por el equipo que aparecen "conectadas" al mundo real.
ARKit solo está disponible en dispositivos que ejecutan procesadores A9 y más eficaces: básicamente iPhone 6S y versiones más recientes, iPad Pros y iPad lanzados no anteriores a 2017.
Las aplicaciones ARKit no se ejecutan en el simulador.
Los desarrolladores tienen tres opciones para representar escenas de AR:
Clase | Caso de uso |
---|---|
ARSCNView | Combinación de geometría 3D de SceneKit con vídeo |
Combinar imágenes 2D de SpriteKit con vídeo | |
Exporte "renderer:updateAtTime:" desde su IARSCNViewDelegate. | Permite una representación personalizada completa. |
Sistemas de coordenadas y transformaciones de ARKit
ARKit usa el movimiento del dispositivo y la "odometría visual" para crear un modelo de la cámara del dispositivo y "puntos de características" reales en relación con un sistema de coordenadas virtual. El sistema de coordenadas usa medidores como unidades. El sistema de coordenadas virtuales tiene un origen calculado para ser la ubicación de la cámara en el momento en que ARSession se inició. La ubicación y la orientación dentro de ARKit se representan principalmente mediante NMatrix4 "matrices nativas". En el caso de ARKit, se trata de transformaciones principales de columna:
La posición o la traducción se encuentra en M14, M24y M34. La matriz 3x3 definida por M11 es M33 la matriz de rotación.
SCNVector3 Position(NMatrix4 m) => new SCNVector3(m.M14, m.M24, m.M34);
Inicialización
El ARSession objeto administra el proceso general de realidad aumentada. El Run método toma un ARConfiguration objeto y ARSessionRunOptions , como se muestra a continuación:
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 Una vez que se está ejecutando, es CurrentFrame la propiedad que contiene el activoARFrame. Dado que el sistema intenta ejecutar ARKit en 60 fotogramas por segundo, los desarrolladores que hacen referencia a Dispose
la CurrentFrame clase deben asegurarse de que el fotograma se ha perdido.
El sistema realiza un seguimiento de los "puntos de características" de contraste alto en la vista de la cámara. Están disponibles para el desarrollador como un ARPointCloud objeto que se puede leer en RawFeaturePoints. Sin embargo, por lo general, los desarrolladores dependen del sistema para identificar características de nivel superior, como planos o caras humanas. Cuando el sistema identifica estas características de nivel superior, agrega ARAnchor objetos cuyas propiedades P:ARKit.ARAnchor.Position están en el sistema de coordenadas del mundo. Los desarrolladores pueden usar los DidAddNodemétodos , DidUpdateNodey DidRemoveNode para reaccionar ante estos eventos y para asociar su geometría personalizada a las características reales.
Las coordenadas de realidad aumentada se mantienen mediante la odometría visual y el administrador de movimiento del dispositivo. Experimentalmente, el seguimiento parece muy sólido en distancias de al menos decenas de metros en una sesión continua.