ARKit 到底怎么实现的
官方的一句话
Integrate iOS device camera and motion features to produce augmented reality experiences in your app or game
集成iOS设备摄像头和运动功能,在你的应用程序或游戏中产生增强现实体验
我写过一个小实例100行代码实现手机AR,有兴趣的可以去看看,这个demo 也是ARKit 的原理介绍
ARKit 重要的类介绍
ARSCNView
显示3D 内容的视图 继承SCNView ,SCNView 继承UIView,所以这个视图可以是任何UIView的子视图,所以你可以像使用UIView一样使用它。你要你使用了ARSCNView 则要和SceneKit 框架一起使用
ARSKView
功能和上面类似,只是它是专门显示2D模型内容的视图,如果你要使用它则对应使用SpriteKit 框架
ARSession
管理设备摄像机和运动处理的共享对象。
ARAnchor
表示一个真实世界的位置和方向,可以将物理模型放置的AR场景中
ARPlaneAnchor
在AR会话中检测到真实世界平面的位置和方向的信息
ARFrame
一个正在运行的AR会话连续地从设备摄像机捕获视频帧。对于每一帧,ARkit分析图像,通过从装置的运动传感硬件来判断设备的实际位置数据
ARCamera
代表 AR会话中捕获的视频帧的摄像机位置和成像特性的信息
ARSessionConfiguration
场景配置,这种配置下,手机位置不动,旋转手机,能够看到,模型相对环境的角度不会改变,但是如果移动手机,模型的位置就会变化
ARWorldTrackingSessionConfiguration
旋转手机或者移动手机,模型的位置和角度都不会变化
接下来演示一个demo 给大家看看
第一步 创建一个工程

第二步 在ViewController 里面导入两个框架
import SceneKit
import ARKit
第三步 创建一个场景显示视图
@IBOutlet var sceneView: ARSCNView!
第四步 创建一个3D 场景
let scene = SCNScene(named: "art.scnassets/ship.scn")!
// 给场景显示视图设置场景
sceneView.scene = scene
第五步 创建场景配置
let configuration = ARWorldTrackingSessionConfiguration()
// Run the view's session
sceneView.session.run(configuration)
这个时候运行一下工程 可以查看一下效果,ARKit 部分的内容比较简单,如果想要学习AR 开发, 难点不是ARKit 框架,而是苹果在 2014 年推出3D游戏引擎框架SceneKit,这个框架至今没有被重用,但是相信AR 会让这个框架火起来,在年初我已经将SceneKit 的教程写完,已发布至AppStore ,想要学习的朋友可以去下载,SceneKit下载地址