官方的一句话
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 给大家看看
第一步 创建一个工程
49751CA2-3CC2-487C-80BD-383C17358113.png第二步 在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下载地址
网友评论