# Spatial AR SDK (ARGO) ### 前言 過去AR(增強現實)技術需要依賴辨識物(Marker)或需要偵測平面才能擺放虛擬內容,且如果要將內容能夠儲存於真實空間中大多依賴GPS技術來進行內容定位 ; 然而該技術對於終端用戶體驗較為不佳,例如AR使用學習門檻過高、GPS AR內容定位不精準,因此該技術一直無法大量應用於消費者體驗上。因此iStaging發展了AR空間定位技術結合雲服務+5G,簡稱**Spatial AR Cloud**,用戶可以直接對空間掃描進行內容精準定位,這樣多人可以在同地點/時間看到虛擬內容,即可實現室內外的展覽、藝術1:1展示和多人實境互動等應用。 ![](https://i.imgur.com/GFkIHOR.png) #### GPS AR和Spatial AR差異比較圖 --- ### 技術說明 名稱解釋: 1. CloudSession:用來做空間特徵和辨識的服務API 2. Anchor: 定位點,用來儲存虛擬物件的位置資訊 3. Watcher: 用來啟動空間辨識找到定位點的服務 4. 可辨識到不同Session的定位點後,不同Session建置的定位點可以關聯起來,空間辨識機制如下圖: ![](https://i.imgur.com/q6nIik9.png) --- ### 環境準備 請先安裝 1. Unity 2020.2.x 2. ARFoundation 4.x 3. Universal Redering Pipeline 4. XR Interaction Toolkit 1.x ![](https://i.imgur.com/057KXEF.png) 另外要安裝Azure套件 ![安裝](https://i.imgur.com/bh9p3r4.png) 根據上圖安裝範例底下的三個套件 1. com.microsoft.azure.spatial-anchors-sdk.core-2.9.0 2. com.microsoft.azure.spatial-anchors-sdk.ios-2.9.0 3. com.microsoft.azure.spatial-anchors-sdk.android-2.9.0 要將環境切到iOS和Android範例才不會有錯誤發生 如果要自動有影子或材質效果 要設定URP 設定URP可參考如下影片或看範例的設定,另外自動影子效果可參考arproxy.shader(在範例Material資料夾內): {%youtube jyGQErgVE8E %} ### 範例說明 下載Spatial SDK位置:https://skypu3@bitbucket.org/skypu3/argo.git 用Unity 2020打開後要將專案切到iOS或Android環境 #### 1. Basic Scene 範例用來介紹如何整合XR Interaction Toolkit的互動功能在AR場景上 可用手勢控制-> 旋轉/縮放/位移/Tap新增物件 可參考專案的場景設定 #### 2. Edit Scene 範例說明可將不同顏色的立體方塊儲存於AR世界中,透過將Cube投影到世界中 再將Cube位置和空間特徵儲存到AR雲 之後回到Scan Scene場景可把剛剛在某空間建置的Cube全部找出來,跟呈現當初建置的顏色 可參考範例程式**SpatialAnchorScript.cs**的AdvanceDemoAsync開始追蹤流程 流程是 1. Placing物件到場景中,Tap物件後可開始控制物件移動或縮放等 2. 啟動SDK的CloudSession開始將物件位置和空間資訊儲存到雲端 3. 繼續回到1 4. 透過同一個CloudSession繼續儲存物件,當掃描階段時可將同一個CloudSession建置的物件辨識出來 另外範例有ApiManager用來與雲端溝通,範例將客製化的Cube顏色欄位儲存在雲端 並呼叫**StartNearWatcher**開始尋找附近定位點和取出客製化的資料例如Cube位置和顏色資訊等 #### 3. Scan Scene 流程如下: 1. 啟動CloudSession開始準備掃描 2. 呼叫ApiManager 根據目前用戶GPS位置尋找附近定位點 3. 呼叫**StartNearWatcher** 4. 得到定位點ID和ID內的Metadata開始做AR渲染 5. 實體化Cube物件和顯示儲存在Metadata的顏色內容 {%youtube Wo7PQRoBmlY %} ### SaaS SDK (Comming Soon!) 上述SDK範例是給懂Unity開發者 但如果客戶沒有相關經驗,我們有也預計提供如下SaaS SDK和客製化App將包含: 1. 帳號系統和後台管理介面 2. 媒體庫上架支持照片、影片和GLTF格式,以及Unity Assetbundle等內容支持 3. 內容語音導覽跟跳出Tag頁面設計 4. Dashboard AR專案管理和APP編輯器 5. 分析數據介面 6. 掃描客戶端SaaS SDK或App客製化