官方的一句話
Integrate iOS device camera and motion features to produce augmented reality experiences in your app or game
集成iOS設(shè)備攝像頭和運(yùn)動(dòng)功能,在你的應(yīng)用程序或游戲中產(chǎn)生增強(qiáng)現(xiàn)實(shí)體驗(yàn)
我寫過(guò)一個(gè)小實(shí)例100行代碼實(shí)現(xiàn)手機(jī)AR,有興趣的可以去看看,這個(gè)demo 也是ARKit 的原理介紹
ARKit 重要的類介紹
ARSCNView
顯示3D 內(nèi)容的視圖 繼承SCNView ,SCNView 繼承UIView,所以這個(gè)視圖可以是任何UIView的子視圖,所以你可以像使用UIView一樣使用它。你要你使用了ARSCNView 則要和SceneKit 框架一起使用
ARSKView
功能和上面類似,只是它是專門顯示2D模型內(nèi)容的視圖,如果你要使用它則對(duì)應(yīng)使用SpriteKit 框架
ARSession
管理設(shè)備攝像機(jī)和運(yùn)動(dòng)處理的共享對(duì)象撇眯。
ARAnchor
表示一個(gè)真實(shí)世界的位置和方向,可以將物理模型放置的AR場(chǎng)景中
ARPlaneAnchor
在AR會(huì)話中檢測(cè)到真實(shí)世界平面的位置和方向的信息
ARFrame
一個(gè)正在運(yùn)行的AR會(huì)話連續(xù)地從設(shè)備攝像機(jī)捕獲視頻幀。對(duì)于每一幀肘习,ARkit分析圖像,通過(guò)從裝置的運(yùn)動(dòng)傳感硬件來(lái)判斷設(shè)備的實(shí)際位置數(shù)據(jù)
ARCamera
代表 AR會(huì)話中捕獲的視頻幀的攝像機(jī)位置和成像特性的信息
ARSessionConfiguration
場(chǎng)景配置,這種配置下,手機(jī)位置不動(dòng),旋轉(zhuǎn)手機(jī),能夠看到,模型相對(duì)環(huán)境的角度不會(huì)改變,但是如果移動(dòng)手機(jī),模型的位置就會(huì)變化
ARWorldTrackingSessionConfiguration
旋轉(zhuǎn)手機(jī)或者移動(dòng)手機(jī),模型的位置和角度都不會(huì)變化
接下來(lái)演示一個(gè)demo 給大家看看
第一步 創(chuàng)建一個(gè)工程
第二步 在ViewController 里面導(dǎo)入兩個(gè)框架
import SceneKit
import ARKit
第三步 創(chuàng)建一個(gè)場(chǎng)景顯示視圖
@IBOutlet var sceneView: ARSCNView!
第四步 創(chuàng)建一個(gè)3D 場(chǎng)景
let scene = SCNScene(named: "art.scnassets/ship.scn")!
// 給場(chǎng)景顯示視圖設(shè)置場(chǎng)景
sceneView.scene = scene
第五步 創(chuàng)建場(chǎng)景配置
let configuration = ARWorldTrackingSessionConfiguration()
// Run the view's session
sceneView.session.run(configuration)
這個(gè)時(shí)候運(yùn)行一下工程 可以查看一下效果,ARKit 部分的內(nèi)容比較簡(jiǎn)單,如果想要學(xué)習(xí)AR 開(kāi)發(fā), 難點(diǎn)不是ARKit 框架,而是蘋果在 2014 年推出3D游戲引擎框架SceneKit绷蹲,這個(gè)框架至今沒(méi)有被重用,但是相信AR 會(huì)讓這個(gè)框架火起來(lái),在年初我已經(jīng)將SceneKit 的教程寫完,已發(fā)布至AppStore ,想要學(xué)習(xí)的朋友可以去下載,SceneKit下載地址