平面檢測示例
該示例演示了如何可(kě)視化現實世界中(zhōng)跟蹤到的平面,有(yǒu)關自定義可(kě)跟蹤對象更新(xīn)的基本信息,以及 Unreal Engine 的 AR Trackable Notify 組件的功能(néng),請參考 Unreal Engine 文(wén)檔。
示例工(gōng)作(zuò)原理(lǐ)
默認情況下,當打開示例時,它會為(wèi)檢測到的平面生成簡單的幾何形狀。如果啓用(yòng)“使用(yòng)凸包檢測”選項,示例将使用(yòng)檢測到平面的凸包生成更複雜的幾何形狀。
您還可(kě)以選擇顯示這些幾何體(tǐ)的線(xiàn)框圖。
平面 AR 管理(lǐ)器
BP_PlaneARManager 藍圖文(wén)件(位于 SnapdragonSpacesSamples Content > SnapdragonSpaces > Samples > PlaneDetection > Placeable)負責通過事件系統管理(lǐ)平面的創建和銷毀。該藍圖将 AR Trackable Notify 組件的事件綁定,以響應 AR 跟蹤平面的變化。以下事件與平面檢測相關:
● 添加/更新(xīn)/移除跟蹤平面:這些事件在系統使用(yòng)簡單平面幾何時會被觸發。
● 添加/更新(xīn)/移除跟蹤幾何:這些事件在系統使用(yòng)複雜平面幾何時會被觸發。
○ 與其他(tā)情況不同的是,UARTrackedGeometry 可(kě)以注冊為(wèi)不同類型的對象。要确認它是否為(wèi)凸面平面,可(kě)以檢查其對象分(fēn)類是否為(wèi) EARObjectClassification::NotApplicable。請使用(yòng) GetObjectClassification 函數進行驗證。
警告! 請記得在檢測開始時将 ToggleARCapture 的狀态設置為(wèi) ON,以啓動檢測;在檢測完成時将其狀态設置為(wèi) OFF,以停止檢測并銷毀所有(yǒu)生成的 AR 幾何體(tǐ)。 |
複雜 AR 會話配置
當用(yòng)戶啓用(yòng)凸包選項時,系統會開始使用(yòng) D_ConvexHullSessionConfig 資産(chǎn)(位于 SnapdragonSpacesSamples Content > SnapdragonSpaces > Samples > PlaneDetection > Core)來檢測複雜平面。
與平面檢測相關的選項包括:
● 使用(yòng)凸包檢測
● 水平平面檢測
● 垂直平面檢測
功能(néng)設置
可(kě)以通過點擊 OpenXR 項目設置中(zhōng)平面檢測功能(néng)旁邊的齒輪圖标來找到功能(néng)設置。
使用(yòng)場景理(lǐ)解:
○ 啓用(yòng)或禁用(yòng)此設置會對檢測到的平面的形狀和數量産(chǎn)生不同的影響。
○ 啓用(yòng)此設置将使用(yòng)場景理(lǐ)解功能(néng)來檢測平面,這與空間網格(實驗)功能(néng)使用(yòng)的技(jì )術相同。
默認檢測與基于場景理(lǐ)解的平面檢測的區(qū)别
指标 | 默認 | 場景理(lǐ)解 |
檢測速度和首次檢測 | 檢測速度和首次檢測 | 檢測速度和首次檢測 |
假陽性 | 少量假陽性 | 易出現假陽性 |
平面準确性 | 高 | 高 |
平面數量 | 少 | 多(duō) |
平面更新(xīn)和移動 | 穩定且不易更新(xīn) | 動态且平面更新(xīn)更多(duō) |
平面方向過濾器 | 支持水平和垂直過濾 | 無過濾選項 |
命中(zhōng)檢測 | 按平面預期進行檢測 | 對網格進行碰撞檢測 |