平面检测

该示例演示了如何可视化现实世界中检测到的平面。有关平面检测/跟踪的基本信息以及 AR Foundation 的 AR Plane Manager 组件的功能,请参考 Unity 文档。要使用此功能,必须在 OpenXR 插件设置中启用它,路径为:项目设置 > XR 插件管理 > OpenXR (> Android 选项卡)。

 

示例的工作原理

首先,确保在 OpenXR 项目设置中启用了平面检测功能。

 

要在体验中看到平面,场景中只需添加两个组件。将 ARPlaneManager 添加到 ARSession GameObject 上,将启用 Snapdragon Spaces 包中的平面子系统。该组件提供了一个字段,用于定义在创建平面时生成的预制件。此预制件附加了 AR Plane 和 AR Plane Mesh Visualizer 组件,以及 Mesh Renderer 和 Line Renderer。AR Plane Mesh Visualizer 组件会定期调整网格和线条,从而绘制出带有填充和边框的平面,可以通过修改渲染器的材料和属性来调整这些外观。此外,还可以在预制件上添加 Mesh Collider 组件,以接收射线检测的命中。

 

图片8.png

 

功能设置

功能设置可以通过点击 OpenXR 项目设置中平面检测功能旁的齿轮图标来找到。

 

● 使用场景理解平面检测:

○ 启用或禁用此设置会影响检测到的平面的形状和数量。

○ 启用此设置后,将使用场景理解来检测平面,这与空间网格(实验)功能使用的技术相同。

○ 启用场景理解平面检测时,用户可以在运行示例时选择是否启用凸包(Convex Hull)选项。

○ 禁用场景理解平面检测时,凸包选项默认启用,用户在运行示例时无法取消选中。

○ 启用凸包时,使用检测到的平面的凸包生成更复杂的形状。禁用时,将根据检测到的平面范围生成平面。

○ 如果无法加载场景理解,此功能将自动表现为禁用了场景理解平面检测。

 

默认平面检测与基于场景理解的平面检测的区别

指标

默认设置

场景理解

检测速度和首次检测

正常

快速

误报情况

误报较少

容易出现误报

平面准确性

平面数量

平面更新和移动

稳定,更新不频繁

动态,平面更新更多

平面方向过滤

提供水平和垂直过滤选项

无过滤选项

命中测试

对平面进行预期的命中测试

对网格进行命中测试