2023年6月Apple發表全新系列產品 Vision Pro,以及專屬作業系統 visionOS,立刻受到全球矚目,堪稱是虛擬實境(VR)或擴增實境(AR)領域最先進的設計,Apple 特別用混合實境(MR)來定位此產品。2024年2月Vision Pro正式上市,多數買家實際體驗後,感覺令人耳目一新,從一些戴著Vision Pro逛街、買咖啡的分享影片看來,未來感十足。
Vision Pro發表的同時,Apple 特別以「空間運算(Spatial Computing)」一詞來統合AR/MR的軟體開發。什麼是「空間運算」呢?簡單地說,就是設備對於實體或虛擬空間,有一定的解析能力,因此VR/AR/MR,甚至元宇宙(Metaverse)都可算是空間運算。
不過要注意,Apple的AR/MR並不是簡單地在實景中添加3D虛擬物件而已,Vision Pro 大量運用人工智慧解析實體空間(以及人、物),讓使用者能透過瞳孔加上簡單手勢,毋須借助鍵盤、滑鼠或額外的控制器,就能完美地在虛實空間中活動。
從「空間運算」的角度來看,Apple 的發展方向和 Meta/Facebook 的路線有明顯區別,Meta 著重於虛擬實境(VR)與元宇宙(Metaverse),強調的是人工開發、完全沉浸的虛擬空間;而 Apple 的看法則是虛擬空間應該融入到人工智慧輔助的實體環境中,形成獨特的混合空間。
Apple 自2007年發表iPhone成為智慧型手機領導廠商,2017年發表ARKit,就持續發展 AR 軟體框架(包括ARKit, SceneKit, RealityKit),目前 iPhone/iPad 已成為 AR 最廣泛使用的主流平台,本單元主要目的就是學習用 Swift 語言來開發 AR App 軟體。
為什麼要學AR程式設計?
可能會有人說,AR/MR 與空間運算目前還未發展成熟,應用場合不多,而且目前 Vision Pro太貴,一般人(更何況是學生)根本買不起。
沒錯,本單元並不打算使用 Vision Pro,也不教 visionOS App 設計,而是先學習「空間運算」的基礎,從3D物件的製作、顯示、動畫開始,到虛擬物件如何融入真實環境,並與使用者互動操作等等,這些基礎不但用於AR,也同樣可發展成Vision Pro App。
AR/MR 軟體目前確實尚非主流,但是與AI一樣,3D電腦繪圖已發展超過50年,累積至今,網路上免費的3D建模、繪圖軟體以及3D虛擬物件,已經是唾手可得,非常普遍,這些會促進空間運算的成熟,對高中生而言,當他5-10年後開始工作時,說不定就像現在的AI一樣,成為主流應用,空間運算將應用於自動駕駛汽車、無人機、電影、遊戲、教育、旅遊,乃至於生活上的各方面。
想像未來有一天,騎電動機車出門,戴上一個AR頭盔,除了保護頭部之外,還具有導航及各種通訊功能,很酷吧!
本單元內容大綱
章節安排依循過去慣例,大約分為10課,每課3小節,每節各有一個完整的範例程式,由淺入深。可能會介紹的主題如下(實際章節與順序未定):
1. SceneKit, ARKit 與 RealityKit
2. SceneKit: 場景、相機鏡頭、燈光、物件節點
3. 顯示3D模型、三角形網格、材質與紋理、動態效果
4. 粒子系統(SCNParticleSystem)
5. 載入外部3D物件檔案
6. RealityKit: ECS (Entity-Component-System)
7. AR視圖、場景、座標、錨點、世界地圖
8. 錨點設定(2D圖片、平面、門窗、人體…)
9. 動畫效果(transform/skeleton animation)
10. 播放音效與影片
11. 手勢互動
12. 動作追蹤(Body Tracking)
從最簡單的3D物件開始,逐漸熟悉AR與空間運算的基本觀念與相關操作,最後會以人體的動作追蹤,做一個類似第5單元5-9提過的動作捕捉(Motion Capture)的功能,操控虛擬機器人替身(如圖)。
需要什麼軟硬體設備呢?
本單元開發環境仍以 Swift Playgrounds App 為主,前半部(SceneKit)介紹 3D 虛擬物件的操作,可在 macOS 或 iPadOS 上開發,後半部(RealityKit)進入 AR 虛實整合,則只能在 iPadOS 上使用,原因是 AR 需要用到陀螺儀、加速度計等傳感器,只有 iPad 或 iPhone 才具備。
附帶一提,過去以 Swift 設計 AR 軟體,大多採用 Xcode,但是 Xcode 的模擬器(Simulator)無法模擬陀螺儀和加速度計,因此必須用 Xcode (透過連接線)接上 iPhone 實機,才能開發測試 AR 軟體。我們改用Swift Playgrounds + iPad 恰可避免這個問題。
至於 iPad 的規格,只要配備仿生(Bionic)晶片即可,最好是2019年之後(5年內)的產品。
學習路線
本單元完全採用 Swift Playgrounds 作為開發環境,硬體5年內的 Mac 或 iPad 都行,請先到 App Store 下載 Swift Playgrounds App。
☞ 下載Swift Playgrounds App
☞ 第1單元 Swift 程式語言基礎
☞ 第2單元 SwiftUI 圖形介面基礎
☞ 第3單元 Swift 網路程式基礎
☞ 第4單元 SwiftUI 動畫與繪圖
☞ 第5單元 Swift AI 人工智慧基礎
💡 註解
- Vision Pro和空間運算中,並非只能開發3D物件,也可以加入傳統的平面(2D)內容,例如照片、影片、文件等等。
- 筆者在30年前學習「計算機圖學」時,3D繪圖非常耗費CPU計算能力,所以後來才有專門的繪圖晶片GPU出現,其中最有名的廠商,就是現在AI晶片之王的輝達(NVIDIA, 成立於1993年)— AI 所需的計算能力,恰好與3D繪圖類似。
- Apple 並不開發 VR 產品,只看好虛實整合的 AR 及 MR。相對的,Facebook 則是以 VR 為主(2014年併購VR廠商 Oculus)。
© 2024 Heman Lu <[email protected]>