ARKit Spazio dei nomi
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
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:
Classe | Caso d'uso |
---|---|
ARSCNView | Combinare la geometria 3D di SceneKit con il video |
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.