ARKit Espacio de nombres

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:

ClaseCaso de uso
ARSCNView Combinación de geometría 3D de SceneKit con vídeo

T:ARKit.ARSCKView

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.

Consulte también