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