关于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源文件
  • 用于渲染摄像机图像的着色器
  • 插件元数据文件
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章