ARKit框架学习

一、ARKit功能概览

视觉惯性里程计

ARKit 使用视觉惯性里程计 (VIO) 以精准地追踪四周的环境。VIO 能结合相机传感器数据与 CoreMotion 数据,这两份数据让设备无需额外的校准,就能以高精度来感测它在房间内的移动。

場景理解和照明估計

使用 ARKit,iPhone 和 iPad 可以分析相机视图呈现的场景,并在房间中找到水平面。 ARKit 可以检测桌子和地板等水平面,并能跟踪及放置物品在较小的特定点上。 ARKit 还能利用相机传感器来估计场景中可用光的总量,并将正确的光亮度应用在虚拟对象上。

高性能硬件和渲染优化

ARKit 可在 Apple A9 和 A10 处理器上运行。 这些处理器提供了具有突破性的性能,可实现快速场景理解,并允许您在现实世界场景上构建出精细迷人的虚拟内容。 您还可以对 Metal,SceneKit 以及 Unity 和 Unreal Engine (虚幻引擎) 等第三方工具中的 ARKit 优化加以利用。


二、开发环境:

1.macOS:10.12.4及以上

2.Xcode版本:Xcode9及以上

3.iOS系统:iOS11及以上

4.iOS设备:处理器A9及以上(6S机型及以上)



三、体验ARKit

1.可以下载:ARKit Demo App: Placing Objects in Augmented Reality 

APP运行效果:

ARKit框架学习


ARKit框架学习



四、动手做个ARKit APP

1.在xcode9中,有现有的AR App

ARKit框架学习


选择好创建就ok。


2.在ViewController.m,会看到以下方法:

ARKit框架学习

其中:

self.sceneView.delegate =self;

是设置代理

self.sceneView.showsStatistics =YES;

是设置显示信息

SCNScene *scene = [SCNScenesceneNamed:@"art.scnassets/plane.scn"];

使用3D模型创建节点,其中scn文件是一个基于3D建模到文件,plane.scn是系统自带的3D飞机模型

ARWorldTrackingConfiguration *configuration = [ARWorldTrackingConfigurationnew];

创建一个追踪设备配置(ARWorldTrackingSessionConfiguration主要负责传感器追踪手机的移动和旋转)

[self.sceneView.sessionrunWithConfiguration:configuration];

启动ARSession会话(启动AR)


3.运行App,看到效果:

ARKit框架学习

ARKit框架学习




4.个人感受:

1.可能是3D模型原因,感觉并不是很逼真,没有达到增强现实的感觉(AR:Augmented Reality---增强现实技术

2.ARKit上手比较快,当然,这个只是一个非常非常简单的demo,对ARKit的认识还不够深,不过比3D图形引擎在使用上是方便

3.在此有个疑问,demo的3D模型文件plane.scn,如果要自己做,还需要类似3DMax的软件创建,但是这个对一般开发人员要求是不是多了些,哪里可以找到更多的3D模型?



参考 :https://developer.apple.com/arkit/