自WWDC会议结束以来已经过去了两个星期。 观看了会议,重新阅读了文档,完成了演示项目,这意味着您可以填写文章中收集的所有信息。

在ARKit的第一个版本中,可以跟踪手机在太空中的移动,确定周围光线的数量和温暖程度,还可以获取有关水平面的信息。 与iOS 11.3一起发布的ARKit 1.5改进了图像质量,添加了垂直平面的定义,静态2D图像的识别以及自动对焦。 让我们看看2.0版中添加了什么。
保存和还原AR卡
我们有机会保存环境地图以及增强现实的间隔对象。 拥有卡片后,您可以使用它进行AR会话初始化,然后将先前放置的对象显示在正确的位置。 保存的卡也可以传输到服务器并在其他设备上使用。
它是这样实现的: ARSession
具有getCurrentWorldMapWithCompletionHandler
方法,该方法返回ARWorldMap
。 关于控制点的信息存储在此对象内部,ARKit可以借助该信息恢复场景的零坐标,以及可以将对象附加到其的ARAnchors
数组。 ARWorldMap
可以保存或发送到某个地方。 要还原地图,需要在开始会话之前将其传输到ARSessionConfiguration
的initialWorldMap
字段。 启动后,会话状态将切换为.relocalizing
,原因是.relocalizing
。 一旦ARKit收集了足够的还原点,零坐标将被设置为正确的位置,并且会话状态将切换为.normal
状态。
为了获得最佳性能,Apple建议执行以下操作:
- 从不同角度扫描场景。 点阵列将更大,更准确;
- 环境应该是静态的并且质地良好;
- 点数组应该相当密集。
您不需要ARFrame
监视这些参数,因为现在ARFrame
具有一个worldMappingStatus
字段。 但是在设计应用程序时需要考虑它们。
多人增强现实
环境地图保存机制允许在多个设备之间同步坐标系。 了解每个设备相对于环境地图的位置,您可以构建多用户方案。
在演示中,展示了SwiftShot游戏,您需要在弹弓中射击对手的弹弓。

游戏是用Swift + SceneKit编写的。 使用MultipeerConnectivity框架同步用户操作。 可以在此处下载应用程序源。
环境反射
我想将虚拟现实的金属对象添加到场景中,我想在其中看到真实世界对象的反映。 为此, ARWorldTrackingConfiguration
一个environmentTexturing
字段。 如果将SceneKit
用作引擎,并将environmentTexturing
字段设置为SceneKit
,则会得到以下结果:

ARKit从摄像机接收到图像后,会根据环境纹理构建立体地图。 使用机器学习算法可以生成未落入框架的信息。
跟踪2D运动图像
在ARKit 1.5中,仅跟踪静态图像出现了。 在第二版中,取消了限制,现在您可以获取运动图像的坐标。 Vuforia SDK曾经提供类似的功能。 在演示中,作为使用示例,他们展示了如何替换相框中视频中的照片:

为了更好地跟踪,您需要使用具有鲜明特征的对比鲜明,纹理清晰的图像。 如果不遵守此要求,Xcode将警告您。
要跟踪图像,您需要使用ARImageTrackingConfiguration
。 trackingImages
数组将传递到配置,并maximumNumberOfTrackedImages
。 图像坐标将作为ARImageAnchor
返回。
跟踪静态3D对象
还增加了对静态3D对象识别的支持。 在识别之前,必须先扫描物体。 您可以使用Apple的应用程序执行此操作。 待扫描的对象应坚实,磨砂并具有良好的纹理。
要跟踪对象, 请从文件或资源目录创建ARReferenceObject并将其添加到ARWorldTrackingConfiguration.detectionObjects
。 有关您将在ARFrame
收到的对象的信息。
例如,演示文稿以增强现实的形式展示了博物馆中有关小雕像的信息。
人脸追踪
在以前的版本中,可以获取人脸的坐标和旋转,人脸的多边形网格以及一系列混合(从零到一的51种情绪)。 在第二版中,我们将看到三项创新:
定向光的定义。
ARKit 2使用面部图像作为光源信息。 使用它,您可以确定光的强度,温度和方向。 这将使面具更加逼真;
语言跟踪。
引擎盖上增加了一个fingerOut,它显示了语言“高度”的[0,1]程度。 从我自己身上,我可以补充一点,几乎我所有的朋友都试图展示这种语言,我曾与animoji一起玩过。
眼动追踪。
ARFaceAnchor具有三个新字段: leftEyeTransform
, rightEyeTransform
和lookAtPoint
。 互联网上已经有使用示例的演示:
新版本的常规改进:
- 平面的初始化和定义加快了;
- 在太空中跟踪电话和确定飞机位置变得更加精确;
- 随着平面的扩展,确定平面边界的准确性提高了;
- 添加了4:3宽高比支持(默认情况下将选择此格式)。
除过渡到4:3宽高比外,所有改进将自动应用于您的应用程序。 对于后者,您需要使用新的SDK重建应用程序。
如果这些信息对您有用,请使用向上箭头支持我。 我准备回答评论中的问题。