平面檢測

平面檢測示例

該示例演示了(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)線框圖。

 

圖片35.png


平面 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 函數進行驗證。

 

圖片36.png


警告!

記得(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ì)網格進行碰撞檢測