關於ARKit XR插件 技術細節

ARKit XR Plugin 4.1.5

使用 ARKit XR 插件包可通過 Unity 的多平臺XR API啓用ARKit支持。 該軟件包實現了以下XR子系統:

此版本的ARKit XR插件支持以下功能:

  • Device localization 設備本地化
  • Horizontal plane detection 水平面檢測
  • Vertical plane detection 垂直平面檢測
  • Point clouds 點雲
  • Pass-through camera view 直通相機視圖
  • Light estimation 光線估算
  • Anchors 錨點
  • Hit testing 命中測試
  • Session management 會話管理
  • Image tracking 影像追蹤
  • Object tracking 對象追蹤
  • Environment probes 環境探針
  • Participant tracking 參加者追蹤
  • Meshes (also known as Scene Reconstruction)網格(也稱爲場景重建)
  • Occlusion 咬合

如果應用程序開發人員不打算使用面部跟蹤,則AppleApp Store將拒絕其二進制文件中包含某些與面部跟蹤相關的符號的任何應用程序。 爲避免歧義,人臉跟蹤支持在單獨的軟件包ARKit人臉跟蹤中提供。

安裝ARKit XR插件

要安裝此軟件包,請按照軟件包管理器文檔中的說明進行操作。

另外,安裝AR Foundation軟件包,該軟件包使用ARKit XR插件並提供許多有用的腳本和預製件。 有關此軟件包的更多信息,請參見 AR Foundation documentation文檔。

使用ARKit XR插件

ARKit XR插件使用Unity的多平臺XR API實現構建手持式AR應用程序所需的本機iOS端點。 但是,此程序包不會公開其自身的任何公共腳本接口。 在大多數情況下,您應該使用AR Foundation提供的scripts, prefabs, 和 assets 作爲您的手持式AR應用程序的基礎。

包括ARKit XR插件在內,還包括源文件,靜態庫,着色器文件和插件元數據。
ARKit需要iOS 11.0。 一些特定功能需要更高版本(請參見下文)。

構建設置

要訪問ARKit構建設置,請從Unity的主菜單轉到Edit> Project Settings,然後導航到XR Plug-in Management菜單並檢查ARKit提供程序,如下面的屏幕快照所示:

這將創建一個ARKitSettings Asset,可以在XR Plug-in Management > ARKit下進行訪問,如以下屏幕截圖所示:

需要 AR

您可以將ARKit標記爲必需或可選。 默認情況下,ARKit是必需的,這意味着您的應用程序只能安裝在支持AR的設備和操作系統(iOS 11.0及更高版本)上。 如果您指定AR爲可選,則您的應用可以安裝在所有iOS設備上。

定位到32位設備

要定位32位設備,必須在Graphics API列表中包含OpenGLES2。 從菜單中,選擇 Edit > Project Settings then navigate to Player > Other Settings > Graphics APIs:

Session

ARKit實現 XRSessionSubsystem.GetAvailabilityAsync,它由檢查其運行在iOS 11.0或更高版本上的設備組成。 有關更多信息,請參見 ARSubsystems session documentation.。

深度子系統

Raycasts始終爲Raycasts命中的項目返回一個Pose。 在對特徵點進行光線投射時,pose的方向應提供特徵點可能代表的表面的估計。

深度子系統不需要額外的資源,因此啓用它不會影響性能

ARKit的深度子系統只會產生一個 XRPointCloud

有關更多信息,請參見 ARSubsystems depth subsystem documentation

平面跟蹤

ARKit不支持平面歸併(也就是說,一個平面不能包含在另一平面中); 沒有合併事件。 如果確定兩個平面是同一表面的獨立部分,則一個平面可能會被刪除,而另一個平面會擴展到探查的表面。

ARKitiOS 11.3和更高版本上爲其所有平面提供了邊界點。

ARKit平面子系統需要額外的CPU資源,並且可能會消耗大量電量。 同時啓用水平和垂直平面檢測(在iOS 11.3+中可用)需要額外的資源。 當您的應用不需要平面檢測以節省能源時,請考慮禁用它。

將平面檢測模式設置爲 PlaneDetectionMode.None等效於Stopping子系統。

有關更多信息,請參見 ARSubsystems plane subsystem documentation

參加者追蹤

參與者代表多用戶協作會話中的另一個設備。 儘管您可以隨時啓動和停止參與者子系統,但該會話必須從多用戶會話中的其他對等方接收ARCollaborationData,以便檢測到參與者。 有關示例實現,請參閱ARCollaborationData sample on GitHub

光線估算

ARKit光線估算只能啓用或禁用。 Ambient Intensity(環境強度)或Environmental HDR數據的可用性取決於活動的跟蹤模式。 有關更多詳細信息,請參見下表。

Tracking configuration Ambient intensity (lumens) Color temperature Main light direction Main light intensity (lumens) Ambient spherical harmonics
World Tracking Yes Yes No No No
Face Tracking Yes Yes Yes Yes Yes

相機配置

XRCameraConfiguration 包含一個IntPtr字段nativeConfigurationHandle,它是特定於平臺的句柄。 對於ARKit,此句柄是指向本地 ARVideoFormat Objective-C對象的指針。


技術細節

要求

此版本的ARKit XR插件與以下版本的Unity Editor兼容:

  • 2019.4
  • 2020.1
  • 2020.2
  • 2021.1

已知限制

  • 顏色校正不可用作RGB值(僅作爲色溫)。
  • 該軟件包僅支持64位設備。 在iOSPlayer Settings window窗口中(菜單: Edit > Project Settings > Player Settings,然後選擇iOS),您需要選擇ARM64作爲目標體系結構(默認爲“通用”)。

package內容

此版本的ARKit XR插件包括:

  • 一個靜態庫,提供上面列出的XR子系統的實現
  • 一個Objective-C源文件
  • 用於渲染攝像機圖像的着色器
  • 插件元數據文件
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章