ARKit Namespace
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Der ARKit-Namespace bietet Unterstützung für Augmented Reality-Sitzungen, einschließlich allgemeiner und niedriger APIs zum Projizieren computergenerierter Bilder in einen Videostream.
Klassen
ARAnchor |
Eine Position, Ausrichtung und Skalierung, die sich in der realen Welt befindet, an die Augmented Reality-Objekte angefügt werden können. |
ARBlendShapeLocationOptions |
Ein DictionaryContainer , der die in verfügbaren Features definiert. |
ARCamera |
Informationen über die Position und Ausrichtung der Kamera, die einen Augmented Reality-Frame aufgenommen hat. |
ARConfiguration |
Konfigurationsinformationen für Augmented Reality-Sitzungen. |
ARDirectionalLightEstimate |
Schätzt die reale Beleuchtung, die auf ein Gesicht fällt. |
AREnvironmentProbeAnchor |
Quelle für umweltfreundliche Beleuchtung. |
ARErrorCodeExtensions |
Erweiterungsmethoden für die ARKit.ARErrorCode-Enumeration. |
ARFaceAnchor |
Eine ARAnchor , die ein erkanntes Gesicht in den Weltkoordinaten der AR-Sitzung findet. |
ARFaceGeometry |
Ein Gitter, das ein erkanntes Gesicht darstellt, einschließlich Form und Ausdruck. |
ARFaceTrackingConfiguration |
Ein ARConfiguration zum Erkennen und Nachverfolgen von Gesichtern. |
ARFrame |
Ein Frame in einer Augmented Reality-Sitzung. |
ARHitTestResult |
Ein von der -Methode generiertes HitTest(CGPoint, ARHitTestResultType) Ergebnis. |
ARImageAnchor |
Eine ARAnchor , die ein in der realen Welt erkanntes Bild nachverfolgt. |
ARImageTrackingConfiguration |
ARConfiguration Unterklasse, die ein erkanntes Bild als Grundlage für die Weltnachverfolgung verwendet. |
ARLightEstimate |
Eine Schätzung der realen Lichtumgebung. |
ARObjectAnchor |
ARAnchor Unterklasse, die ein erkanntes reales 3D-Objekt nachverfolgt. |
ARObjectScanningConfiguration |
Ein ressourcenintensives ARConfiguration Verfahren, das während der Entwicklung zum Erstellen von ARReferenceObject Daten verwendet wird. |
AROrientationTrackingConfiguration |
Eine ARConfiguration , die nur die Geräteausrichtung verfolgt und die rückwärtigen Kameras des Geräts verwendet. |
ARPlaneAnchor |
Eine Unterklasse von, die ARAnchor verwendet wird, um reale flache Oberflächen darzustellen. |
ARPlaneGeometry |
Geometrie, die eine ebene darstellt, die in der realen Welt erkannt wurde. |
ARPointCloud |
Eine Reihe von 3-dimensionalen Punkten, die den Glauben der Bildverarbeitung an einen festen realen Punkt auf einer physischen Oberfläche angeben. |
ARReferenceImage |
Eine Bildressource, die vorverarbeitete Bilder enthält, die in der realen Welt erkannt werden sollen. |
ARReferenceObject |
Digitale Darstellung eines in der realen Welt zu erkennenden 3D-Objekts. |
ARSCNDebugOptions |
Visualisierungsoptionen für die Verwendung mit der DebugOptions -Eigenschaft von ARSCNView. |
ARSCNFaceGeometry |
SceneKit-Geometrie, die ein Gesicht darstellt. |
ARSCNPlaneGeometry |
Der ARKit-Namespace bietet Unterstützung für Augmented Reality-Sitzungen, einschließlich allgemeiner und niedriger APIs zum Projizieren computergenerierter Bilder in einen Videostream. |
ARSCNView |
Eine Unterklasse von, SCNView die Augmented Reality-Inhalte unterstützt. |
ARSCNView.ARSCNViewAppearance |
Darstellungsklasse für Objekte des Typs ARSCNView. |
ARSCNViewDelegate |
Delegieren sie das Objekt für ARSCNView Objekte. |
ARSCNViewDelegate_Extensions |
Erweiterungsmethoden für die IARSCNViewDelegate Schnittstelle, um alle Methoden aus dem ARSCNViewDelegate Protokoll zu unterstützen. |
ARSession |
Verwaltet die Kameraaufnahme, Bewegungsverarbeitung und Bildanalyse, die für die Erstellung einer Mixed Reality-Erfahrung erforderlich sind. |
ARSessionDelegate |
Delegieren Sie das Objekt für das ARSession Objekt, sodass der Entwickler auf Ereignisse im Zusammenhang mit der Augmented Reality-Sitzung reagieren kann. |
ARSessionDelegate_Extensions |
Erweiterungsmethoden für die IARSessionDelegate Schnittstelle, um alle Methoden aus dem ARSessionDelegate Protokoll zu unterstützen. |
ARSessionObserver_Extensions |
Optionale Methoden der IARSessionObserver Schnittstelle. |
ARSKView |
Eine Unterklasse von SKView , die Sprite Kit-Objekte in einer Augmented Reality-Sitzung platziert. |
ARSKView.ARSKViewAppearance |
Darstellungsklasse für Objekte des Typs ARSKView. |
ARSKViewDelegate |
Delegatobjekt, mit dem der Entwickler auf Ereignisse reagieren kann, die sich auf ein ARSKViewbeziehen. |
ARSKViewDelegate_Extensions |
Erweiterungsmethoden für die IARSKViewDelegate Schnittstelle, um alle Methoden aus dem ARSKViewDelegate Protokoll zu unterstützen. |
ARVideoFormat |
Zusammenfassungsinformationen zum Videofeed, der in der AR-Simulation verwendet wird. |
ARWorldMap |
Eine serialisierbare und gemeinsam nutzbare Kombination aus realen räumlichen Datenpunkten und Mixed Reality-Ankern. |
ARWorldTrackingConfiguration |
Konfiguration für eine Sitzung, die die Position und Ausrichtung des Geräts nachverfolgt und optional horizontale Oberflächen erkennt. |
Schnittstellen
IARAnchorCopying |
Der ARKit-Namespace bietet Unterstützung für Augmented Reality-Sitzungen, einschließlich allgemeiner und niedriger APIs zum Projizieren computergenerierter Bilder in einen Videostream. |
IARSCNViewDelegate |
Schnittstelle, die die erforderlichen Methoden (falls vorhanden) des Protokolls ARSCNViewDelegatedarstellt. |
IARSessionDelegate |
Schnittstelle, die die erforderlichen Methoden (falls vorhanden) des Protokolls ARSessionDelegatedarstellt. |
IARSessionObserver |
Schnittstellendefinieren von Methoden, die auf Ereignisse in einem ARSessionreagieren. |
IARSKViewDelegate |
Schnittstelle, die die erforderlichen Methoden (falls vorhanden) des Protokolls ARSKViewDelegatedarstellt. |
IARTrackable |
Schnittstelle für reale Objekte, die von ARKit nachverfolgt werden können. |
Enumerationen
AREnvironmentTexturing |
Listet Strategien zur Umgebungstexturierung auf, die mit T:ARKit.ARWorldTrackingProbeAnchor-Objekten verwendet werden. |
ARErrorCode |
Listet die Ursachen für einen Fehler auf ARSession . |
ARHitTestResultType |
Listet die Arten von Objekten auf, die von der HitTest(CGPoint, ARHitTestResultType) -Methode erkannt werden. |
ARPlaneAnchorAlignment |
Die Ausrichtung eines ARPlaneAnchor (Derzeit auf horizontal beschränkt). |
ARPlaneClassification |
Der ARKit-Namespace bietet Unterstützung für Augmented Reality-Sitzungen, einschließlich allgemeiner und niedriger APIs zum Projizieren computergenerierter Bilder in einen Videostream. |
ARPlaneClassificationStatus |
Der ARKit-Namespace bietet Unterstützung für Augmented Reality-Sitzungen, einschließlich allgemeiner und niedriger APIs zum Projizieren computergenerierter Bilder in einen Videostream. |
ARPlaneDetection |
Listet die gültigen Ausrichtungen für erkannte Ebenen auf (derzeit nur horizontal). |
ARSessionRunOptions |
Listet Optionen in Aufrufen von auf Run(ARConfiguration, ARSessionRunOptions). |
ARTrackingState |
Listet die Qualität des realen Trackings in einer Augmented Reality auf ARSession. |
ARTrackingStateReason |
Listet die Ursachen von auf Limited. |
ARWorldAlignment |
Listet Optionen für die Erstellung des Weltkoordinatensystems auf. |
ARWorldMappingStatus |
Listet die Zustände einer Weltzuordnungssitzung auf. |
Hinweise
ARKit wurde in iOS 11 hinzugefügt und bietet Mixed Reality-Sitzungen, die Kameraeingaben mit computergenerierten Bildern kombiniert, die an die reale Welt "angefügt" scheinen.
ARKit ist nur auf Geräten mit A9 und leistungsstärkeren Prozessoren verfügbar: im Wesentlichen iPhone 6S und neuer, iPad Pros und iPads, die nicht vor 2017 veröffentlicht wurden.
ARKit-Apps werden im Simulator nicht ausgeführt.
Entwickler haben drei Möglichkeiten zum Rendern von AR-Szenen:
Klasse | Anwendungsfall |
---|---|
ARSCNView | Kombinieren von SceneKit 3D-Geometrie mit Video |
Kombinieren von SpriteKit 2D-Bildern mit Video | |
Exportieren Sie "renderer:updateAtTime:" aus .IARSCNViewDelegate | Ermöglicht das vollständige benutzerdefinierte Rendering. |
ARKit-Koordinatensysteme und Transformationen
ARKit verwendet Gerätebewegung und "visuelle Odometrie", um ein Modell der Kamera des Geräts und reale "Featurepunkte" in Bezug auf ein virtuelles Koordinatensystem zu erstellen. Das Koordinatensystem verwendet Zähler als Einheiten. Das virtuelle Koordinatensystem hat einen Ursprung, der zum Zeitpunkt des Startens als Standort der ARSession Kamera berechnet wird. Standort und Ausrichtung in ARKit werden in erster Linie mithilfe von NMatrix4 "nativen Matrizen" dargestellt. Im Fall von ARKit sind dies Spalten-Haupttransformationen:
Position oder Übersetzung ist in M14, M24und M34. Die durch definierte M11M33 3x3-Matrix ist die Rotationsmatrix.
SCNVector3 Position(NMatrix4 m) => new SCNVector3(m.M14, m.M24, m.M34);
Initialisierung
Das ARSession Objekt verwaltet den gesamten Augmented Reality-Prozess. Die Run -Methode nimmt ein ARConfiguration - und ein ARSessionRunOptions -Objekt an, wie unten gezeigt:
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);
Sobald ein ARSession ausgeführt wird, enthält die CurrentFrame Eigenschaft die aktive ARFrame. Da das System versucht, ARKit mit 60 Frames pro Sekunde auszuführen, müssen Entwickler, die auf den CurrentFrame verweisen, sicher sein, dass Dispose
sie ihn verloren haben.
Das System verfolgt "Featurepunkte" mit hohem Kontrast in der Kameraansicht nach. Diese stehen dem Entwickler als ARPointCloud Objekt zur Verfügung, das unter RawFeaturePointsgelesen werden kann. Im Allgemeinen verlassen sich Entwickler jedoch auf das System, um übergeordnete Features wie Ebenen oder menschliche Gesichter zu identifizieren. Wenn das System diese features auf höherer Ebene identifiziert, fügt es Objekte hinzu ARAnchor , deren sich im Weltkoordinatensystem befinden. Entwickler können die DidAddNodeMethoden , DidUpdateNodeund DidRemoveNode verwenden, um auf solche Ereignisse zu reagieren und ihre benutzerdefinierte Geometrie an reale Features anzufügen.
Die Augmented Reality-Koordinaten werden mithilfe der visuellen Odometrie und des Bewegungs-Managers des Geräts verwaltet. Experimentell wirkt die Nachverfolgung über Distanzen von mindestens zehn Metern in einer kontinuierlichen Sitzung sehr solide.