共用方式為


ARKit 命名空間

ARKit 命名空間支援擴增實境會話,包括將電腦產生的影像投影到視訊串流的高階和低階 API。

類別

ARAnchor

位於可附加擴增實境物件之真實世界中的位置、方向和縮放比例。

ARBlendShapeLocationOptions

DictionaryContainer 定義 T:ARKit.ARBlendShapeLocation中可用的功能。

ARCamera

擷取擴增實境畫面之相機的位置和方向相關資訊。

ARConfiguration

擴增實境會話的組態資訊。

ARDirectionalLightEstimate

預估真實世界的照明落在臉部上。

AREnvironmentProbeAnchor

以電源為基礎的光源來源。

ARErrorCodeExtensions

ARKit.ARErrorCode 列舉的擴充方法。

ARFaceAnchor

ARAnchor 找出 AR 會話全局座標中偵測到的臉部。

ARFaceGeometry

網格,表示已辨識的臉部,包括圖形和運算式。

ARFaceTrackingConfiguration

ARConfiguration用於辨識和追蹤臉部的 。

ARFrame

擴增實境會話中的框架。

ARHitTestResult

方法所產生的 HitTest(CGPoint, ARHitTestResultType) 結果。

ARImageAnchor

ARAnchor 追蹤在真實世界中偵測到的影像。

ARImageTrackingConfiguration

ARConfiguration 使用已辨識影像作為世界追蹤基礎的子類別。

ARLightEstimate

真實世界光源環境的估計值。

ARObjectAnchor

ARAnchor 追蹤已辨識真實世界 3D 物件的子類別。

ARObjectScanningConfiguration

開發期間使用的資源密集 ARConfiguration 資源來建立 ARReferenceObject 資料。

AROrientationTrackingConfiguration

ARConfiguration,只追蹤裝置方向,並使用裝置的後端相機。

ARPlaneAnchor

ARAnchor 子類別,用來表示真實世界平面。

ARPlaneGeometry

幾何,表示在真實世界中偵測到的平面。

ARPointCloud

一組 3 維點,表示影像處理在實體表面固定真實世界點的信念。

ARReferenceImage

影像資源,其中包含在真實世界中要辨識的預先處理影像。

ARReferenceObject

在真實世界中偵測到之 3D 物件的數位標記法。

ARSCNDebugOptions

與 的 屬性 ARSCNView 搭配 DebugOptions 使用的視覺效果選項。

ARSCNFaceGeometry

代表臉部的 SceneKit 幾何。

ARSCNPlaneGeometry

ARKit 命名空間支援擴增實境會話,包括將電腦產生的影像投影到視訊串流的高階和低階 API。

ARSCNView

SCNView 子類別,支援擴增實境內容。

ARSCNView.ARSCNViewAppearance

ARSCNView 別 物件的外觀類別。

ARSCNViewDelegate

物件的委派物件 ARSCNView

ARSCNViewDelegate_Extensions

介面的 IARSCNViewDelegate 擴充方法,以支援來自 ARSCNViewDelegate 通訊協定的所有方法。

ARSession

管理建立混合實境體驗所需的相機擷取、動作處理和影像分析。

ARSessionDelegate

物件的委派物件 ARSession ,可讓開發人員回應與擴增實境會話相關的事件。

ARSessionDelegate_Extensions

介面的 IARSessionDelegate 擴充方法,以支援來自 ARSessionDelegate 通訊協定的所有方法。

ARSessionObserver_Extensions

介面的 IARSessionObserver 選擇性方法。

ARSKView

SKView 子類別,會將 Sprite Kit 物件放在擴增實境會話中。

ARSKView.ARSKViewAppearance

ARSKView 別 物件的外觀類別。

ARSKViewDelegate

委派物件,可讓開發人員回應與 ARSKView 相關的事件。

ARSKViewDelegate_Extensions

介面的 IARSKViewDelegate 擴充方法,以支援來自 ARSKViewDelegate 通訊協定的所有方法。

ARVideoFormat

AR 模擬中使用的影片摘要摘要資訊。

ARWorldMap

真實世界空間資料點和混合實境錨點的可序列化和可共用組合。

ARWorldTrackingConfiguration

追蹤裝置位置和方向的會話設定,並選擇性地偵測水準表面。

介面

IARAnchorCopying

ARKit 命名空間支援擴增實境會話,包括將電腦產生的影像投影到視訊串流的高階和低階 API。

IARSCNViewDelegate

介面,表示通訊協定 ARSCNViewDelegate 的任何) 時, (所需的方法。

IARSessionDelegate

介面,表示通訊協定 ARSessionDelegate 的任何) 時, (所需的方法。

IARSessionObserver

介面定義方法,以回應 中的 ARSession 事件。

IARSKViewDelegate

介面,表示通訊協定 ARSKViewDelegate 的任何) 時, (所需的方法。

IARTrackable

ARKit 可追蹤之真實世界物件的介面。

列舉

AREnvironmentTexturing

列舉與 T:ARKit.ARWorldTrackingProbeAnchor物件搭配使用的環境文字策略。

ARErrorCode

列舉失敗的原因 ARSession

ARHitTestResultType

列舉 方法偵測 HitTest(CGPoint, ARHitTestResultType) 到的物件種類。

ARPlaneAnchorAlignment

目前限制為水準) 的 (方向 ARPlaneAnchor

ARPlaneClassification

ARKit 命名空間支援擴增實境會話,包括將電腦產生的影像投影到視訊串流的高階和低階 API。

ARPlaneClassificationStatus

ARKit 命名空間支援擴增實境會話,包括將電腦產生的影像投影到視訊串流的高階和低階 API。

ARPlaneDetection

列舉目前僅水準) 偵測到平面的有效方向 (。

ARSessionRunOptions

列舉 呼叫 Run(ARConfiguration, ARSessionRunOptions) 中的選項。

ARTrackingState

列舉擴增實境 ARSession 中真實世界追蹤的品質。

ARTrackingStateReason

列舉 的原因 Limited

ARWorldAlignment

列舉如何建立全局座標系統的選項。

ARWorldMappingStatus

列舉世界對應會話的狀態。

備註

ARKit 已在 iOS 11 中新增,並針對混合實境會話提供,可將相機輸入與顯示「附加」到真實世界的電腦產生影像結合。

ARKit 僅適用于執行 A9 和更強大的處理器的裝置:基本上,iPhone 6S 和更新版本、iPad Pros 和 iPad 未早于 2017 年發行。

ARKit 應用程式不會在模擬器中執行。

開發人員有三種轉譯 AR 場景的選項:

類別使用案例
ARSCNView 結合 SceneKit 3D 幾何與影片

T:ARKit.ARSCKView

結合 SpriteKit 2D 影像與影片
從其 IARSCNViewDelegate 匯出 「renderer:updateAtTime:」 。允許完整的自訂轉譯。

ARKit 座標系統和轉換

ARKit 使用裝置動作和「視覺 odometry」來建立裝置相機的模型,以及與虛擬座標系統相關的真實世界「功能點」。 座標系統會使用公尺作為其單位。 虛擬座標系統有一個原點,計算為啟動時相機的位置 ARSession 。 ARKit 中的位置和方向主要是使用 NMatrix4 「原生矩陣」來表示。 在 ARKit 的情況下,這些是資料行主要轉換:

位置或翻譯位於 M14M24M34 中。 所 M11M33 定義的 3x3 矩陣是旋轉矩陣。

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

初始化

物件 ARSession 會管理整體擴增實境程式。 方法會 Run 採用 ARConfigurationARSessionRunOptions 物件,如下所示:

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執行之後,其 CurrentFrame 屬性會保留作用 ARFrame 中的 。 因為系統嘗試每秒 60 個框架執行 ARKit,所以參考 CurrentFrame 的開發人員必須在遺失該畫面之後,確定 Dispose 該框架。

系統會追蹤相機檢視中的高對比「功能點」。 開發人員可以使用這些物件作為 ARPointCloud 可在 讀取的物件 RawFeaturePoints 。 不過,一般而言,開發人員依賴系統來識別較高層級的功能,例如平面或人臉。 當系統識別這些較高層級的功能時,它會新增 ARAnchor屬性位於全局座標系統中的物件。 開發人員可以使用 DidAddNodeDidUpdateNodeDidRemoveNode 方法來回應這類事件,並將其自訂幾何附加至真實世界特徵。

擴增實境座標是使用視覺 odometry 和裝置的動作管理員來維護。 在實驗上,追蹤在連續會話中至少超過數十公尺的距離看起來非常穩固。

另請參閱