版本記錄
版本號 | 時間 |
---|---|
V1.0 | 2017.09.27 |
前言
蘋果最近新出的一個API就是ARKit,是在2017年6月6日,蘋果發布iOS11系統所新增框架,它能夠幫助我們以最簡單快捷的方式實現AR技術功能。接下來幾篇我們就詳細的對ARKit框架進行詳細的解析。
AR技術
在講ARKit之前,我們先了解一下AR技術。增強現實技術(Augmented Reality
,簡稱 AR),是一種實時地計算攝影機影像的位置及角度并加上相應圖像、視頻、3D模型的技術,這種技術的目標是在屏幕上把虛擬世界套在現實世界并進行互動。
一個最簡單地AR場景實現所需要的技術以及步驟包含如下:
- 多媒體捕捉現實圖像:如攝像頭。
- 三維建模:3D立體模型。
- 傳感器追蹤:主要追蹤現實世界動態物體的六軸變化,這六軸分別是X、Y、Z軸位移及旋轉。其中位移三軸決定物體的方位和大小,旋轉三周決定物體顯示的區域。
- 坐標識別及轉換:3D模型顯示在現實圖像中不是單純的frame坐標點,而是一個三維的矩陣坐標。這基本上也是學習AR最難的部分,好在ARKit幫助我們大大簡化了這一過程。
除此之外,AR還可以與虛擬物體進行一些交互。
ARKit基本
ARKit是2017年6月6日,ios11測試版本發布時新增加的框架,可以幫助我們以最簡單的方式實現AR技術功能。ARKit提供了兩種AR技術:
- 基于3D場景(sceneKit)實現的增強現實。
- 基于2D場景(SpritKit)實現的增強現實。
一般主流都是基于3D實現AR技術,ARKit不僅支持3D游戲引擎sceneKit,還支持2D游戲引擎SpritKit。
需要注意的是:
- 雖然ARKit框架中視圖對象繼承于UIView,但是由于目前ARKit框架本身只包含相機追蹤,不能直接加載物體模型,所以只能依賴于游戲引擎加載ARKit。
- ARKit是ios11推出的框架,但并不是所有的ios11系統都可以使用,因此必須是A9及以上才能夠使用,iphone6s開始使用A9處理器,也就是說iphone6及其以上的機型就不能使用這個框架了。
- 開發環境需求:
- Xcode版本:Xcode9及以上
- iOS系統:iOS11及以上
- iOS設備:處理器A9及以上(6S機型及以上)
- MacOS系統:10.12.4及以上(安裝Xcode9對Mac系統版本有要求)
ARKit框架
集成iOS設備攝像頭和運動功能,在您的應用程序或游戲中產生增強的現實體驗。
增強現實(AR)描述了將設備的相機中的2D或3D元素添加到實時視圖的用戶體驗,使得這些元素似乎居住在現實世界中。 ARKit結合了設備運動跟蹤,相機場景拍攝,高級場景處理和顯示便利,簡化了AR體驗的任務。
重要說明:ARKit需要具有A9或更高版本處理器的iOS設備。要使應用程序僅在支持ARKit的設備上可用,請在應用程序的Info.plist
的UIRequiredDeviceCapabilities
部分中使用arkit
鍵。 如果增強現實是應用程序的輔助功能,請使用isSupported屬性來確定當前設備是否支持您要使用的會話配置。
下面我們先看一下ARKit框架的結構和組成。
下面按照功能模塊對框架進行詳細分解和說明
1. First Steps
-
About Augmented Reality and ARKit
- 發現支持構建偉大的AR體驗的概念,功能和最佳實踐。
-
- 管理設備相機和增強現實體驗所需的運動處理的共享對象。
-
- AR會話配置的抽象基類。
2. World-Based AR Experiences
-
Building Your First AR Experience
- 創建運行AR會話的應用程序,并使用平面檢測來使用
SceneKit
放置3D內容。
- 創建運行AR會話的應用程序,并使用平面檢測來使用
-
Handling 3D Interaction and UI Controls in Augmented Reality
- 遵循AR體驗中的視覺反饋,手勢交互和逼真渲染的最佳做法。
-
- 使用后置攝像頭,跟蹤設備的方向和位置以及檢測真實平面的配置。
-
AROrientationTrackingConfiguration
- 使用后置攝像頭并僅跟蹤設備方向的配置。
-
- 關于世界跟蹤AR會話中檢測到的真實平面的位置和方向的信息。
3. Face-Based AR Experiences
-
Creating Face-Based AR Experiences
- 放置和動畫3D用戶臉部的內容,并匹配面部表情(在具有兼容的前置攝像頭的設備上)。
-
ARFaceTrackingConfiguration
- 跟蹤設備前置攝像頭所看到的用戶臉部的移動和表情的配置。
-
ARFaceAnchor
- 關于臉部跟蹤AR會話中檢測到的臉部的姿勢,拓撲和表情的信息。
4. Standard Views
5. Custom Views
-
Displaying an AR Experience with Metal
- 通過渲染相機圖像和使用位置跟蹤信息來顯示疊加內容來構建自定義AR視圖。
6. Real-World Objects and Positions
-
- 通過檢查AR會話的設備攝像機視圖中的一個點找到有關現實世界表面的信息。
-
- 可用于將對象放置在AR場景中的現實世界的位置和方向。
-
- ARKit跟蹤改變位置和方向的場景中的真實世界對象。
7. Camera and Scene Details
-
- 作為AR會話的一部分捕獲的視頻圖像和位置跟蹤信息。
-
- 關于AR會話中捕獲的視頻幀的攝像機位置和成像特性的信息。
-
- 與AR會話中捕獲的視頻幀相關聯的估計場景照明信息。
-
- 在面部跟蹤AR會話中與捕獲的視頻幀相關聯的估計環境照明信息。
8. Reference
后記
未完,待續~~~