[Swift] ARKit

Teddy
Goons
Published in
3 min readJul 2, 2019

我們很常聽到VR、 AR、MR等等,關於實境互動的簡稱,那這些技術有什麼差異呢?希望能夠透過接下來的介紹可以讓我們更了解今天所要介紹的主題「ARKit」。

  • Virtual Reality(VR):在最早出現的時候有個名詞稱為「人造現實」,意思是使用人工的方式製造出一個世界,讓使用者相信所在之後就是現實。Virtual Reality翻譯出來的意思是「虛擬實境」,透過模擬出具有「聽覺」、「視覺」的3D世界來進行互動。
  • Augmented Reality(AR):擴增實境,在真實的場景中結合了「虛擬的物品」,以目前比較常見的幾個例子來說,例如寶可夢,使用者可以透過手機鏡頭結合了真實的場景並且和一個虛擬的物品互動;或是在IKEA中,可以透過手機鏡頭可以把一個虛擬的傢俱結合在家裡的圖像中,讓使用者對於空間感、傢俱尺寸在擺設後的樣子更有概念。

在了解 VR、AR 以後接著可以進入我們的主題ARKit,傳統AR的呈現方式是需要透過深度攝影機、在實景上標記座標點以及許多的儀器透過計算後才能夠將虛擬物件呈現在手機鏡頭上進行互動。

然而ARKit是由Apple提供的iOS開發工具,只需要透過手機鏡頭並且搭配著使用 Metal API,利用相機每秒的幀度變化進行計算平面的景深差距,最後把虛擬物件呈現出來。

即使 ARKit 很簡單地透過手機鏡頭進行影像計算就能達到很好的效果,不過要注意的是 ARKit 需要一個非常完整且偏靜像的背景,例如只拍攝到一面白色牆壁或是畫面有太多的東西在動,這些情況都有可能在運作上造成失效。

那接著可以透過以下幾個步驟在 XCode 中使用 Swift 4 來實作做在實際畫面中可以看到一個正方體模型的畫面。

Step1. 首先要先在專案中導入ARKit的模型。

Step2. 在viewWillAppear中加入WorldTracking來追蹤裝置的方位和位置等

等訊息,並且記得在viewWillDisappear中也要加入停止追蹤的指令。

Step3. 使用原生的函式SCNBox,透過設定該矩行的寬度、長度、深度以及

需要的節點並加入畫面中。

Step4. 由於ARkit只支援軟體iOS11版本以及硬體A9以上CPU,所以需要

把專案建立在iphone6s 以後的機種上才能運作。

我是果思設計的 iOS 工程師 Teddy,我們專注在 App 設計與 App 開發,希望文章對各位有幫助!非常期待在留言區與大家討論、吸收更多觀點:)

--

--