Freigeben über


ARKit Namespace

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:

KlasseAnwendungsfall
ARSCNView Kombinieren von SceneKit 3D-Geometrie mit Video

T:ARKit.ARSCKView

Kombinieren von SpriteKit 2D-Bildern mit Video
Exportieren Sie "renderer:updateAtTime:" aus .IARSCNViewDelegateErmö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.

Weitere Informationen