因為之前 公司的業(yè)務(wù)一直會用到AR相關(guān)的東西 所以IOS11 發(fā)布會之后,最吸引我的就是全新的ARKit。在這之前一直嘗試過很多種客戶端native的AR解決辦法,總結(jié)下來相對靠譜的方法是使用 Vuforia + SceneKit 來解決,優(yōu)點是基于ios原生的游戲引擎來結(jié)合AR開發(fā)比較契合于現(xiàn)在多數(shù)AR的使用場景的,但是缺件點就是 對于系統(tǒng)的硬性要求(IOS8 以下無法獲得支持),而Vuforia基于C語言的底層,使得開發(fā)難度大幅提升。而ARKit的出現(xiàn)無疑是在AR解決方面提供了一個不錯的選擇。
ARKit 并不依賴于硬件,也就是說支持iOS11的設(shè)備都能實現(xiàn)對AR的支持,以現(xiàn)在IOS11的市場覆蓋率來說,可以不需要考慮向下兼容的問題。目前版本已經(jīng)升級到了1.5 增加了圖片識別功能,之后發(fā)布的IOS12中會迎來2.0的更新。
下面我們來了解一下 開發(fā)AR項目必備的一些知識
-
右手坐標系 (right-handed convention)
所謂的右手坐標系 就是以右手拇指為x軸的正向,食指為y軸的正向,中指為z軸的正向。

同樣的如果反過來,就是左手坐標系
IOS的AR開發(fā)中 統(tǒng)一用的都是右手坐標
-
世界追蹤(World Tracking)
為了在真實空間和虛擬空間之間建立對應(yīng)關(guān)系,ARKit使用了一種稱為視覺慣性測距法的技術(shù)。此過程將來自iOS設(shè)備的運動感應(yīng)硬件的信息與設(shè)備相機可見場景的計算機視覺分析相結(jié)合。 ARKit識別場景圖像中的顯著特征,跟蹤視頻幀中這些特征的位置差異,并將該信息與運動感測數(shù)據(jù)進行比較。最終在屏幕上呈現(xiàn)出虛擬位置的高精度模型。
同時ARKit會檢測攝像機圖像中的平面并報告其位置和大小。可以將虛擬模型放置于平面之中。1.5之后支持了垂直平面
關(guān)于平面檢測,首次檢測需要一定的時間,并且當你在場景中隨著攝像頭不斷的移動 ARKit會自動計算和修正平面。
主要類
- ARSession