ARKit 的原理與最佳實踐
構建傑出 AR 體驗的概念、功能和最佳實踐。
簡介
任何 AR 體驗的基本要求——也是 ARKit 的定義特徵——是創建和跟蹤用戶所在的現實世界空間與可以建模可視化內容的虛擬空間之間對應關係的能力。當 App 將此內容與實時攝像頭畫面顯示在一起時,用戶會體驗到增強現實:虛擬內容是真實世界中一部分的錯覺。
世界追蹤的工作原理
為了在真實和虛擬空間之間創建對應關係,ARKit 使用一種叫做視覺慣性測距(visual-inertial odometry)的技術。這個過程將來自 iOS 設備運動感測器的信息和設備相機可見場景的計算機視覺分析相結合。ARKit 識別場景圖像中的顯著特徵,從視頻的每一幀中跟蹤這些特徵位置的差異,並將該信息與運動感測數據進行比較。結果是設備的位置和運動的高精度模型。
世界追蹤還分析和理解場景中的內容。使用 hit-testing 方法(見 ARHitTestResult 類)來尋找與相機畫面中的點對應的真實世界表面。如果在 session 配置中啟用 planeDetection 設置,ARKit 會檢測相機畫面中的平面,並報告位置和尺寸。可以使用 hit-test 結果或檢測到的平面來放置內容,或與場景中的虛擬內容進行交互。
最佳實踐與限制
世界追蹤是一項不精確的科學。這個過程通常會產生令人震驚的準確性,引領現實的 AR 體驗。然而,它依賴於設備的物理環境的細節,這些細節並不總是一致的,或者難以實時測量而沒有一定程度的錯誤。要創建高品質的 AR 體驗,請注意這些注意事項和提示。
為可預見的照明條件設計 AR 體驗。世界追蹤涉及圖像分析,需要清晰的圖像。如果相機無法看到細節,例如當相機指向大白牆或場景太暗時,追蹤質量會降低。
使用追蹤質量信息來提供用戶反饋。世界追蹤與圖像分析和設備運動有關。如果設備在移動,ARKit 可以更好地理解場景,哪怕設備只是微微移動。過多的動作——太遠、太快或太劇烈的抖動——會導致圖像模糊,或者所追蹤的視頻幀之間距離太遠,從而降低視頻質量。ARCamera 類提供追蹤狀態的原因信息,可以藉助它開發一個用戶界面,告訴用戶如何解決低質量的追蹤狀況。
給平面檢測充分的時間以產生清晰的結果,並在獲得所需結果後禁用平面檢測。平面檢測結果隨時間變化——首次檢測到平面時,其位置和範圍可能不準確。隨著時間的推移,平面依然保持在場景中,ARKit 會進一步提升對於位置和範圍的估計。如果場景中有一個大的平面,ARKit 可能會在你已經在上面放置內容後繼續改變平面錨點的位置、範圍和變換
推薦閱讀:
※誰偷了我的熱更新?Mono,JIT,iOS
※AssistiveTouch 被大量肢體健全的用戶啟用,是 iOS 交互設計失敗的體現嗎?
※iOS 10 來了,這是我的初體驗 #iOS
※iOS 11.2.1和iOS 11.2.5 Beta 1更新了哪些內容,要不要升級?