Condividi tramite


ARKit Spazio dei nomi

Lo spazio dei nomi ARKit fornisce il supporto per le sessioni di realtà aumentata, incluse le API di alto e basso livello per proiettare immagini generate dal computer in un flusso video.

Classi

ARAnchor

Posizione, orientamento e scala che si trova nel mondo reale a cui è possibile associare oggetti di realtà aumentata.

ARBlendShapeLocationOptions

Oggetto DictionaryContainer che definisce le funzionalità disponibili in T:ARKit.ARBlendShapeLocation .

ARCamera

Informazioni sulla posizione e sull'orientamento della fotocamera che ha acquisito un frame di realtà aumentata.

ARConfiguration

Informazioni di configurazione per le sessioni di realtà aumentata.

ARDirectionalLightEstimate

Stima che l'illuminazione reale cade su un viso.

AREnvironmentProbeAnchor

Fonte di illuminazione basata sull'ambiente.

ARErrorCodeExtensions

Metodi di estensione per l'enumerazione ARKit.ARErrorCode.

ARFaceAnchor

Oggetto ARAnchor che individua un viso rilevato nelle coordinate del mondo della sessione AR.

ARFaceGeometry

Mesh che rappresenta un viso riconosciuto, inclusa la forma e l'espressione.

ARFaceTrackingConfiguration

Oggetto ARConfiguration per il riconoscimento e il rilevamento dei visi.

ARFrame

Frame in una sessione di realtà aumentata.

ARHitTestResult

Risultato generato dal HitTest(CGPoint, ARHitTestResultType) metodo .

ARImageAnchor

Oggetto ARAnchor che tiene traccia di un'immagine rilevata nel mondo reale.

ARImageTrackingConfiguration

ARConfiguration sottoclasse che usa un'immagine riconosciuta come base per il rilevamento globale.

ARLightEstimate

Stima dell'ambiente di illuminazione reale.

ARObjectAnchor

ARAnchor sottoclasse che tiene traccia di un oggetto 3D reale riconosciuto.

ARObjectScanningConfiguration

Oggetto a elevato utilizzo ARConfiguration di risorse durante lo sviluppo per creare ARReferenceObject dati.

AROrientationTrackingConfiguration

Oggetto ARConfiguration che tiene traccia solo dell'orientamento del dispositivo e usa le fotocamere posteriori del dispositivo.

ARPlaneAnchor

Sottoclasse di ARAnchor utilizzata per rappresentare superfici flat reali.

ARPlaneGeometry

Geometria che rappresenta un piano rilevato nel mondo reale.

ARPointCloud

Set di punti tridimensionali, che indica la convinzione dell'elaborazione delle immagini in un punto reale fisso su una superficie fisica.

ARReferenceImage

Risorsa immagine che contiene immagini pre-elaborate da riconoscere nel mondo reale.

ARReferenceObject

Rappresentazione digitale di un oggetto 3D da rilevare nel mondo reale.

ARSCNDebugOptions

Opzioni di visualizzazione da usare con la DebugOptions proprietà di ARSCNView.

ARSCNFaceGeometry

Geometria sceneKit che rappresenta un viso.

ARSCNPlaneGeometry

Lo spazio dei nomi ARKit fornisce il supporto per le sessioni di realtà aumentata, incluse le API di alto e basso livello per proiettare immagini generate dal computer in un flusso video.

ARSCNView

Sottoclasse di SCNView che supporta il contenuto della realtà aumentata.

ARSCNView.ARSCNViewAppearance

Classe Aspetto per gli oggetti di tipo ARSCNView.

ARSCNViewDelegate

Oggetto delegato per ARSCNView gli oggetti .

ARSCNViewDelegate_Extensions

Metodi di estensione per l'interfaccia IARSCNViewDelegate per supportare tutti i metodi del ARSCNViewDelegate protocollo.

ARSession

Gestisce l'acquisizione, l'elaborazione del movimento e l'analisi delle immagini necessarie per creare un'esperienza di realtà mista.

ARSessionDelegate

Delegare l'oggetto per l'oggetto ARSession , consentendo allo sviluppatore di rispondere agli eventi relativi alla sessione di realtà aumentata.

ARSessionDelegate_Extensions

Metodi di estensione per l'interfaccia IARSessionDelegate per supportare tutti i metodi del ARSessionDelegate protocollo.

ARSessionObserver_Extensions

Metodi facoltativi dell'interfaccia IARSessionObserver .

ARSKView

Sottoclasse di SKView che inserisce gli oggetti Sprite Kit in una sessione di realtà aumentata.

ARSKView.ARSKViewAppearance

Classe Aspetto per gli oggetti di tipo ARSKView.

ARSKViewDelegate

Oggetto delegato che consente allo sviluppatore di rispondere agli eventi relativi a un oggetto ARSKView.

ARSKViewDelegate_Extensions

Metodi di estensione per l'interfaccia IARSKViewDelegate per supportare tutti i metodi del ARSKViewDelegate protocollo.

ARVideoFormat

Informazioni di riepilogo sul feed video usato nella simulazione AR.

ARWorldMap

Combinazione serializzabile e condivisibile di punti dati spaziali reali e ancoraggi di realtà mista.

ARWorldTrackingConfiguration

Configurazione per una sessione che tiene traccia della posizione e dell'orientamento del dispositivo e, facoltativamente, rileva le superfici orizzontali.

Interfacce

IARAnchorCopying

Lo spazio dei nomi ARKit fornisce il supporto per le sessioni di realtà aumentata, incluse le API di alto e basso livello per proiettare immagini generate dal computer in un flusso video.

IARSCNViewDelegate

Interfaccia che rappresenta i metodi obbligatori (se presenti) del protocollo ARSCNViewDelegate.

IARSessionDelegate

Interfaccia che rappresenta i metodi obbligatori (se presenti) del protocollo ARSessionDelegate.

IARSessionObserver

Interfaccia che definisce i metodi che rispondono agli eventi in un oggetto ARSession.

IARSKViewDelegate

Interfaccia che rappresenta i metodi obbligatori (se presenti) del protocollo ARSKViewDelegate.

IARTrackable

Interfaccia per gli oggetti reali che possono essere rilevati da ARKit.

Enumerazioni

AREnvironmentTexturing

Enumera le strategie di texturing ambientale usate con oggetti T:ARKit.ARWorldTrackingProbeAnchor .

ARErrorCode

Enumerazione causa un ARSession errore.

ARHitTestResultType

Enumera i tipi di oggetti rilevati dal HitTest(CGPoint, ARHitTestResultType) metodo .

ARPlaneAnchorAlignment

Orientamento di un oggetto ARPlaneAnchor (attualmente limitato a orizzontale).

ARPlaneClassification

Lo spazio dei nomi ARKit fornisce il supporto per le sessioni di realtà aumentata, incluse le API di alto e basso livello per proiettare immagini generate dal computer in un flusso video.

ARPlaneClassificationStatus

Lo spazio dei nomi ARKit fornisce il supporto per le sessioni di realtà aumentata, incluse le API di alto e basso livello per proiettare immagini generate dal computer in un flusso video.

ARPlaneDetection

Enumera gli orientamenti validi per i piani rilevati (attualmente, solo orizzontale).

ARSessionRunOptions

Enumera le opzioni nelle chiamate a Run(ARConfiguration, ARSessionRunOptions).

ARTrackingState

Enumera la qualità del rilevamento reale in una realtà ARSessionaumentata.

ARTrackingStateReason

Enumera le cause di Limited.

ARWorldAlignment

Enumera le opzioni per la creazione del sistema di coordinate globale.

ARWorldMappingStatus

Enumera gli stati di una sessione di mapping globale.

Commenti

ARKit è stato aggiunto in iOS 11 e fornisce sessioni di realtà mista che combinano l'input della fotocamera con le immagini generate dal computer che appaiono "collegate" al mondo reale.

ARKit è disponibile solo nei dispositivi che eseguono processori A9 e più potenti: essenzialmente iPhone 6S e versioni successive, iPad Pro e iPad rilasciati non precedenti al 2017.

Le app ARKit non vengono eseguite nel simulatore.

Gli sviluppatori hanno tre opzioni per il rendering delle scene AR:

ClasseCaso d'uso
ARSCNView Combinare la geometria 3D di SceneKit con il video

T:ARKit.ARSCKView

Combinare immagini 2D di SpriteKit con il video
Esportare "renderer:updateAtTime:" dal relativo IARSCNViewDelegate.Consente il rendering personalizzato completo.

Sistemi di coordinate e trasformazioni ARKit

ARKit usa il movimento del dispositivo e "odometria visiva" per creare un modello della fotocamera del dispositivo e dei "punti di funzionalità" reali in relazione a un sistema di coordinate virtuali. Il sistema di coordinate usa i contatori come unità. Il sistema di coordinate virtuali ha un'origine calcolata in modo che sia la posizione della fotocamera al momento dell'avvio ARSession di . La posizione e l'orientamento all'interno di ARKit sono rappresentati principalmente usando NMatrix4 "matrici native". Nel caso di ARKit, si tratta di trasformazioni principali della colonna:

La posizione o la traduzione è in M14, M24e M34. La matrice 3x3 definita da M11 a M33 è la matrice di rotazione.

SCNVector3 Position(NMatrix4 m) => new SCNVector3(m.M14, m.M24, m.M34);          

Inizializzazione

L'oggetto ARSession gestisce il processo complessivo di realtà aumentata. Il Run metodo accetta un ARConfiguration oggetto e ARSessionRunOptions , come illustrato di seguito:

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);

Quando un oggetto ARSession è in esecuzione, la proprietà contiene l'oggetto CurrentFrame attivo ARFrame. Poiché il sistema tenta di eseguire ARKit a 60 fotogrammi al secondo, gli sviluppatori che fanno riferimento CurrentFrame a Dispose devono essere sicuri del frame dopo averlo perso.

Il sistema tiene traccia dei "punti di funzionalità" a contrasto elevato nella visualizzazione della fotocamera. Sono disponibili per lo sviluppatore come ARPointCloud oggetto che può essere letto all'indirizzo RawFeaturePoints. In genere, tuttavia, gli sviluppatori si basano sul sistema per identificare funzionalità di livello superiore, ad esempio aerei o volti umani. Quando il sistema identifica queste funzionalità di livello superiore, aggiunge ARAnchor oggetti le cui proprietà P:ARKit.ARAnchor.Position si trovano nel sistema di coordinate globali. Gli sviluppatori possono usare i DidAddNodemetodi , DidUpdateNodee DidRemoveNode per reagire a tali eventi e associare la geometria personalizzata alle funzionalità reali.

Le coordinate della realtà aumentata vengono mantenute usando i odometria visivi e il gestore del movimento del dispositivo. Sperimentalmente, il tracciamento sembra molto solido su distanze di almeno decine di metri in una sessione continua.

Vedi anche