空间理解受小范围限制

Ric*_*ina 8 c# spatial unity-game-engine hololens

我正在与Unity中的Hololens合作,试图绘制一个大面积(15x15x25)米的地图.我可以使用SpatialMapping预制件映射整个区域,但我想对该网格进行一些空间处理,以使地板和墙壁平滑.我一直试图用SpatialUnderstanding它,但似乎有一个硬限制你可以扫描这个区域的大小,这已经由hololens论坛线程详细说明.

目前,我并不了解数据的管道从工作SpatialMappingSpatialUnderstanding.为什么我不能简单地使用从产生的网格SpatialMappingSpatialUnderstanding?有没有更好的方法来创建光滑的表面?

小智 1

该解决方案最适合预生成的房间。换句话说,考虑到当前的限制,不可能出现最终用户可能使用的通用解决方案。

  • 我将从最后一个问题开始:“有没有更好的方法来创建光滑的表面?”

    • 是的,使用带轮子的三脚架来生成初始扫描。鉴于硬件中加速度计和罗盘的分辨率有限,减少一个线性轴、高度和一个旋转轴、滚动(滚动在扫描期间根本不应该变化)的变化将导致更准确的扫描。

    • 创建平滑表面的另一种方法是将网格导出到 3D 编辑程序并手动展平表面,然后将网格重新导入到 Unity3D 中。

  • “为什么我不能简单地在 SpatialUnderstanding 中使用从 SpatialMapping 生成的网格?”

SpacialUnderstanding进一步将生成的网格划分为(8cm,8cm,8cm)体素,然后根据每个体素计算面元。为了控制性能和内存利用率,硬限制约为 (10m,10m,10m)。它被实现为(128,128,128)体素。

任何超出其定义限制的尝试SpacialUnderstanding都会由于底层数据结构的溢出而产生虚假结果。